texlive[74156] Master: context 2.11.06 for TL25

commits+karl at tug.org commits+karl at tug.org
Wed Feb 19 23:48:51 CET 2025


Revision: 74156
          https://tug.org/svn/texlive?view=revision&revision=74156
Author:   karl
Date:     2025-02-19 23:48:50 +0100 (Wed, 19 Feb 2025)
Log Message:
-----------
context 2.11.06 for TL25

Modified Paths:
--------------
    trunk/Master/bin/aarch64-linux/luametatex
    trunk/Master/bin/amd64-freebsd/luametatex
    trunk/Master/bin/i386-freebsd/luametatex
    trunk/Master/bin/i386-linux/luametatex
    trunk/Master/bin/universal-darwin/luametatex
    trunk/Master/bin/windows/context.exe
    trunk/Master/bin/windows/luametatex.exe
    trunk/Master/bin/windows/mtxrun.exe
    trunk/Master/bin/windows/mtxrun.lua
    trunk/Master/bin/x86_64-darwinlegacy/luametatex
    trunk/Master/bin/x86_64-linux/luametatex
    trunk/Master/bin/x86_64-linuxmusl/luametatex
    trunk/Master/texmf-dist/context/data/scite/context/lexers/data/scite-context-data-context.lua
    trunk/Master/texmf-dist/context/data/scite/context/lexers/data/scite-context-data-interfaces.lua
    trunk/Master/texmf-dist/context/data/scite/context/lexers/data/scite-context-data-metafun.lua
    trunk/Master/texmf-dist/context/data/scite/context/lexers/data/scite-context-data-metapost.lua
    trunk/Master/texmf-dist/context/data/scite/context/lexers/data/scite-context-data-tex.lua
    trunk/Master/texmf-dist/context/data/scite/context/lexers/scite-context-lexer-lua.lua
    trunk/Master/texmf-dist/context/data/scite/context/lexers/scite-context-lexer.lua
    trunk/Master/texmf-dist/context/data/scite/context/scite-context-data-context.properties
    trunk/Master/texmf-dist/context/data/scite/context/scite-context-data-interfaces.properties
    trunk/Master/texmf-dist/context/data/scite/context/scite-context-data-metafun.properties
    trunk/Master/texmf-dist/context/data/scite/context/scite-context-data-metapost.properties
    trunk/Master/texmf-dist/context/data/scite/context/scite-context-data-tex.properties
    trunk/Master/texmf-dist/context/data/scite/context/scite-context-internal.properties
    trunk/Master/texmf-dist/context/data/scite/context/scite-ctx.lua
    trunk/Master/texmf-dist/context/data/scite/context/scite-ctx.properties
    trunk/Master/texmf-dist/doc/context/documents/general/manuals/columnsets.pdf
    trunk/Master/texmf-dist/doc/context/documents/general/manuals/lowlevel-characters.pdf
    trunk/Master/texmf-dist/doc/context/documents/general/manuals/lowlevel-conditionals.pdf
    trunk/Master/texmf-dist/doc/context/documents/general/manuals/lowlevel-paragraphs.pdf
    trunk/Master/texmf-dist/doc/context/documents/general/manuals/lowlevel.pdf
    trunk/Master/texmf-dist/doc/context/documents/general/manuals/luametafun.pdf
    trunk/Master/texmf-dist/doc/context/documents/general/manuals/luametatex.pdf
    trunk/Master/texmf-dist/doc/context/documents/general/manuals/pdfmerge.pdf
    trunk/Master/texmf-dist/doc/context/documents/general/qrcs/setup-mapping-de.pdf
    trunk/Master/texmf-dist/doc/context/documents/general/qrcs/setup-mapping-en.pdf
    trunk/Master/texmf-dist/doc/context/documents/general/qrcs/setup-mapping-fr.pdf
    trunk/Master/texmf-dist/doc/context/documents/general/qrcs/setup-mapping-it.pdf
    trunk/Master/texmf-dist/doc/context/scripts/mkiv/context.html
    trunk/Master/texmf-dist/doc/context/scripts/mkiv/context.man
    trunk/Master/texmf-dist/doc/context/scripts/mkiv/context.xml
    trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-babel.man
    trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-base.man
    trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-bibtex.html
    trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-bibtex.man
    trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-bibtex.xml
    trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-cache.html
    trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-cache.man
    trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-cache.xml
    trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-chars.man
    trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-check.man
    trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-colors.man
    trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-context.html
    trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-context.man
    trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-context.xml
    trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-convert.man
    trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-ctan.man
    trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-dvi.man
    trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-epub.html
    trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-epub.man
    trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-epub.xml
    trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-evohome.man
    trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-fcd.man
    trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-fixpdf.man
    trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-flac.man
    trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-fonts.html
    trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-fonts.man
    trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-fonts.xml
    trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-grep.html
    trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-grep.man
    trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-grep.xml
    trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-install-modules.man
    trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-install.man
    trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-interface.html
    trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-interface.man
    trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-interface.xml
    trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-kpse.man
    trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-metapost.man
    trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-modules.man
    trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-package.man
    trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-patterns.man
    trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-pdf.html
    trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-pdf.man
    trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-pdf.xml
    trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-plain.man
    trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-profile.man
    trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-rsync.man
    trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-scite.man
    trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-server.man
    trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-spell.man
    trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-synctex.man
    trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-texworks.man
    trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-tools.man
    trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-unicode.man
    trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-unzip.man
    trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-update.man
    trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-vscode.man
    trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-watch.man
    trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-youless.man
    trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtxrun.man
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/canbedone/canbedone-periods.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/canbedone/canbedone-style.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/canbedone/canbedone.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/columnsets/columnsets-000.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/columnsets/columnsets-001.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/columnsets/columnsets-005.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/columnsets/columnsets-006.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/columnsets/columnsets-007.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/followingup/followingup-directions.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/fonts/fonts-features.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/graphics/graphics.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/languages/languages-basics.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/languages/languages-environment.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/languages/languages-hyphenation.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/languages/languages-mkiv.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/lowlevel/lowlevel-accuracy.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/lowlevel/lowlevel-characters.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/lowlevel/lowlevel-conditionals.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/lowlevel/lowlevel-lines.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/lowlevel/lowlevel-macros.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/lowlevel/lowlevel-paragraphs.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/lowlevel/lowlevel-style.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/lowlevel/lowlevel.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametafun/luametafun-color.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametafun/luametafun-fonts.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametafun/luametafun-interface.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametafun/luametafun-introduction.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametafun/luametafun-outline.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametafun/luametafun-poisson.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametafun/luametafun-shade.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametafun/luametafun-text.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametafun/luametafun.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametatex/luametatex-callbacks.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametatex/luametatex-contents.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametatex/luametatex-fonts.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametatex/luametatex-introduction.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametatex/luametatex-languages.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametatex/luametatex-libraries.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametatex/luametatex-lua.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametatex/luametatex-math.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametatex/luametatex-metapost.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametatex/luametatex-nodes.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametatex/luametatex-pdf.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametatex/luametatex-primitives.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametatex/luametatex-style.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametatex/luametatex-tex.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametatex/luametatex.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/luatex/luatex-fonts.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/luatex/luatex-languages.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/luatex/luatex-lua.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/luatex/luatex-modifications.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/metafun/metafun-lua.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/metafun/metafun-text-lmtx.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/musings/musings-perception.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/musings/musings.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/ontarget/ontarget-jmn.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/ontarget/ontarget.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/pdfmerge/pdfmerge.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/publications/publications-otheruse.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/publications/publications-style.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/svg/svg-lmtx-mozilla.lua
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/svg/svg-lmtx.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/workflows/workflows-mkiv.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/workflows/workflows-parallel.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/workflows/workflows-synctex.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/xml/xml-mkiv-tricks.tex
    trunk/Master/texmf-dist/doc/man/man1/context.1
    trunk/Master/texmf-dist/doc/man/man1/context.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-babel.1
    trunk/Master/texmf-dist/doc/man/man1/mtx-babel.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-base.1
    trunk/Master/texmf-dist/doc/man/man1/mtx-base.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-bibtex.1
    trunk/Master/texmf-dist/doc/man/man1/mtx-bibtex.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-cache.1
    trunk/Master/texmf-dist/doc/man/man1/mtx-cache.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-chars.1
    trunk/Master/texmf-dist/doc/man/man1/mtx-chars.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-check.1
    trunk/Master/texmf-dist/doc/man/man1/mtx-check.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-colors.1
    trunk/Master/texmf-dist/doc/man/man1/mtx-colors.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-context.1
    trunk/Master/texmf-dist/doc/man/man1/mtx-context.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-convert.1
    trunk/Master/texmf-dist/doc/man/man1/mtx-convert.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-ctan.1
    trunk/Master/texmf-dist/doc/man/man1/mtx-ctan.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-dvi.1
    trunk/Master/texmf-dist/doc/man/man1/mtx-dvi.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-epub.1
    trunk/Master/texmf-dist/doc/man/man1/mtx-epub.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-evohome.1
    trunk/Master/texmf-dist/doc/man/man1/mtx-evohome.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-fcd.1
    trunk/Master/texmf-dist/doc/man/man1/mtx-fcd.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-fixpdf.1
    trunk/Master/texmf-dist/doc/man/man1/mtx-fixpdf.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-flac.1
    trunk/Master/texmf-dist/doc/man/man1/mtx-flac.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-fonts.1
    trunk/Master/texmf-dist/doc/man/man1/mtx-fonts.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-grep.1
    trunk/Master/texmf-dist/doc/man/man1/mtx-grep.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-install-modules.1
    trunk/Master/texmf-dist/doc/man/man1/mtx-install-modules.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-install.1
    trunk/Master/texmf-dist/doc/man/man1/mtx-install.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-interface.1
    trunk/Master/texmf-dist/doc/man/man1/mtx-interface.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-kpse.1
    trunk/Master/texmf-dist/doc/man/man1/mtx-kpse.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-metapost.1
    trunk/Master/texmf-dist/doc/man/man1/mtx-metapost.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-modules.1
    trunk/Master/texmf-dist/doc/man/man1/mtx-modules.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-package.1
    trunk/Master/texmf-dist/doc/man/man1/mtx-package.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-patterns.1
    trunk/Master/texmf-dist/doc/man/man1/mtx-patterns.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-pdf.1
    trunk/Master/texmf-dist/doc/man/man1/mtx-pdf.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-plain.1
    trunk/Master/texmf-dist/doc/man/man1/mtx-plain.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-profile.1
    trunk/Master/texmf-dist/doc/man/man1/mtx-profile.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-rsync.1
    trunk/Master/texmf-dist/doc/man/man1/mtx-rsync.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-scite.1
    trunk/Master/texmf-dist/doc/man/man1/mtx-scite.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-server.1
    trunk/Master/texmf-dist/doc/man/man1/mtx-server.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-spell.1
    trunk/Master/texmf-dist/doc/man/man1/mtx-spell.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-synctex.1
    trunk/Master/texmf-dist/doc/man/man1/mtx-synctex.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-texworks.1
    trunk/Master/texmf-dist/doc/man/man1/mtx-texworks.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-tools.1
    trunk/Master/texmf-dist/doc/man/man1/mtx-tools.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-unicode.1
    trunk/Master/texmf-dist/doc/man/man1/mtx-unicode.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-unzip.1
    trunk/Master/texmf-dist/doc/man/man1/mtx-unzip.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-update.1
    trunk/Master/texmf-dist/doc/man/man1/mtx-update.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-vscode.1
    trunk/Master/texmf-dist/doc/man/man1/mtx-vscode.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-watch.1
    trunk/Master/texmf-dist/doc/man/man1/mtx-watch.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtx-youless.1
    trunk/Master/texmf-dist/doc/man/man1/mtx-youless.man1.pdf
    trunk/Master/texmf-dist/doc/man/man1/mtxrun.1
    trunk/Master/texmf-dist/doc/man/man1/mtxrun.man1.pdf
    trunk/Master/texmf-dist/metapost/context/base/mpiv/mp-char.mpiv
    trunk/Master/texmf-dist/metapost/context/base/mpiv/mp-tool.mpiv
    trunk/Master/texmf-dist/metapost/context/base/mpxl/mp-base.mpxl
    trunk/Master/texmf-dist/metapost/context/base/mpxl/mp-cont.mpxl
    trunk/Master/texmf-dist/metapost/context/base/mpxl/mp-lmtx.mpxl
    trunk/Master/texmf-dist/metapost/context/base/mpxl/mp-luas.mpxl
    trunk/Master/texmf-dist/metapost/context/base/mpxl/mp-mlib.mpxl
    trunk/Master/texmf-dist/metapost/context/base/mpxl/mp-tool.mpxl
    trunk/Master/texmf-dist/scripts/context/lua/mtx-bibtex.lua
    trunk/Master/texmf-dist/scripts/context/lua/mtx-cache.lua
    trunk/Master/texmf-dist/scripts/context/lua/mtx-context.lua
    trunk/Master/texmf-dist/scripts/context/lua/mtx-context.xml
    trunk/Master/texmf-dist/scripts/context/lua/mtx-ctan.lua
    trunk/Master/texmf-dist/scripts/context/lua/mtx-epub.lua
    trunk/Master/texmf-dist/scripts/context/lua/mtx-fonts.lua
    trunk/Master/texmf-dist/scripts/context/lua/mtx-grep.lua
    trunk/Master/texmf-dist/scripts/context/lua/mtx-install.lua
    trunk/Master/texmf-dist/scripts/context/lua/mtx-interface.lua
    trunk/Master/texmf-dist/scripts/context/lua/mtx-patterns.lua
    trunk/Master/texmf-dist/scripts/context/lua/mtx-pdf.lua
    trunk/Master/texmf-dist/scripts/context/lua/mtx-profile.lua
    trunk/Master/texmf-dist/scripts/context/lua/mtx-scite.lua
    trunk/Master/texmf-dist/scripts/context/lua/mtx-spell.lua
    trunk/Master/texmf-dist/scripts/context/lua/mtx-synctex.lua
    trunk/Master/texmf-dist/scripts/context/lua/mtx-unicode.lua
    trunk/Master/texmf-dist/scripts/context/lua/mtx-vscode.lua
    trunk/Master/texmf-dist/scripts/context/lua/mtxrun.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/anch-pos.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/attr-col.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/back-exp.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/char-cjk.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/char-def.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/char-ini.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/char-utf.mkiv
    trunk/Master/texmf-dist/tex/context/base/mkiv/cldf-ini.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/colo-icc.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/colo-ini.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/cont-fil.mkiv
    trunk/Master/texmf-dist/tex/context/base/mkiv/cont-new.mkiv
    trunk/Master/texmf-dist/tex/context/base/mkiv/cont-run.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/cont-run.mkiv
    trunk/Master/texmf-dist/tex/context/base/mkiv/context.mkiv
    trunk/Master/texmf-dist/tex/context/base/mkiv/data-con.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/data-use.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/export-example.css
    trunk/Master/texmf-dist/tex/context/base/mkiv/file-mod.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/font-dsp.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/font-mis.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/font-nod.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/font-one.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/font-onr.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/font-otc.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/font-otd.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/font-otl.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/font-otr.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/font-oup.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/font-pre.mkiv
    trunk/Master/texmf-dist/tex/context/base/mkiv/font-tra.mkiv
    trunk/Master/texmf-dist/tex/context/base/mkiv/font-web.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/grph-chk.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/grph-fil.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/grph-img.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/grph-inc.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/java-ini.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/l-lua.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/l-os.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/l-pdfview.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/lang-def.mkiv
    trunk/Master/texmf-dist/tex/context/base/mkiv/lang-hyp.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/lang-ini.mkiv
    trunk/Master/texmf-dist/tex/context/base/mkiv/lang-txt.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/lpdf-fld.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/lpdf-mis.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/lpdf-pda.xml
    trunk/Master/texmf-dist/tex/context/base/mkiv/lpdf-pdx.xml
    trunk/Master/texmf-dist/tex/context/base/mkiv/lpdf-pua.xml
    trunk/Master/texmf-dist/tex/context/base/mkiv/lpdf-xmp.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/luat-lib.mkiv
    trunk/Master/texmf-dist/tex/context/base/mkiv/luat-run.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/math-map.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/mtx-context-compare.tex
    trunk/Master/texmf-dist/tex/context/base/mkiv/mult-def.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/mult-fun.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/mult-low.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/mult-mps.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/mult-prm.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/mult-sys.mkiv
    trunk/Master/texmf-dist/tex/context/base/mkiv/node-syn.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/node-tra.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/page-cst.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/page-cst.mkiv
    trunk/Master/texmf-dist/tex/context/base/mkiv/page-mix.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/page-plg.mkiv
    trunk/Master/texmf-dist/tex/context/base/mkiv/publ-dat.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/publ-imp-cite.mkvi
    trunk/Master/texmf-dist/tex/context/base/mkiv/publ-inc.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/publ-ini.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/scrp-cjk.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/spac-hor.mkiv
    trunk/Master/texmf-dist/tex/context/base/mkiv/spac-ver.mkiv
    trunk/Master/texmf-dist/tex/context/base/mkiv/status-files.pdf
    trunk/Master/texmf-dist/tex/context/base/mkiv/status-lua.pdf
    trunk/Master/texmf-dist/tex/context/base/mkiv/strc-doc.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/strc-flt.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/strc-lev.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/strc-num.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/strc-pag.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/strc-ref.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/strc-ref.mkvi
    trunk/Master/texmf-dist/tex/context/base/mkiv/tabl-tbl.mkiv
    trunk/Master/texmf-dist/tex/context/base/mkiv/toks-ini.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/typo-fln.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/util-env.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/util-evo.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/util-sbx.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/util-sql.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/util-str.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/util-tab.lua
    trunk/Master/texmf-dist/tex/context/base/mkxl/anch-bar.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/anch-bck.mklx
    trunk/Master/texmf-dist/tex/context/base/mkxl/anch-box.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/anch-pos.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/anch-pos.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/anch-tab.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/attr-col.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/attr-eff.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/attr-eff.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/attr-mkr.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/back-exp-imp-mth.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/back-exp-imp-tag.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/back-exp.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/back-exp.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/back-imp-pdf.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/back-imp-pdf.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/buff-ini.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/buff-ini.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/buff-ver.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/char-ini.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/char-tex.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/char-utf.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/chem-str.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/cldf-ini.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/cldf-int.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/cldf-lmt.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/colo-grp.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/colo-ini.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/cont-fil.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/cont-log.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/cont-new.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/cont-run.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/cont-run.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/context.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/core-con.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/core-con.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/core-env.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/core-env.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/core-pag.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/core-sys.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/core-uti.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/data-hsh.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/data-sch.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/data-vir.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/driv-ini.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/driv-shp.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/enco-ini.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/file-job.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/file-mod.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/font-cff.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/font-chk.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/font-con.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/font-ctx.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/font-dsp.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/font-emp.mklx
    trunk/Master/texmf-dist/tex/context/base/mkxl/font-fbk.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/font-fea.mklx
    trunk/Master/texmf-dist/tex/context/base/mkxl/font-glf.mklx
    trunk/Master/texmf-dist/tex/context/base/mkxl/font-imp-braille.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/font-imp-checks.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/font-imp-digits.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/font-imp-dimensions.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/font-imp-effects.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/font-imp-math.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/font-imp-quality.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/font-imp-scripts.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/font-ini.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/font-ini.mklx
    trunk/Master/texmf-dist/tex/context/base/mkxl/font-lib.mklx
    trunk/Master/texmf-dist/tex/context/base/mkxl/font-map.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/font-mat.mklx
    trunk/Master/texmf-dist/tex/context/base/mkxl/font-mpf.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/font-ogr.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/font-one.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/font-onr.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/font-ota.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/font-otd.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/font-otj.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/font-otl.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/font-oto.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/font-ots.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/font-phb.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/font-pre.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/font-shp.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/font-sym.mklx
    trunk/Master/texmf-dist/tex/context/base/mkxl/font-tex.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/font-tex.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/font-txt.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/font-uni.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/font-var.mklx
    trunk/Master/texmf-dist/tex/context/base/mkxl/grph-inc.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/grph-inc.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/grph-pat.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/grph-raw.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/grph-rul.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/grph-trf.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/grph-trf.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/hand-ini.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/l-lua.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/lang-def.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/lang-dis.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/lang-frq.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/lang-hyp.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/lang-hyp.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/lang-ini.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/lang-ini.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/lang-mis.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/libs-imp-zint.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/libs-ini.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/lpdf-ano.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/lpdf-aux.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/lpdf-col.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/lpdf-emb.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/lpdf-epa.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/lpdf-fix-imp-contents.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/lpdf-fix-imp-fonts.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/lpdf-fix.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/lpdf-fld.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/lpdf-fmt.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/lpdf-grp.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/lpdf-ini.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/lpdf-lmt.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/lpdf-mis.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/lpdf-pde.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/lpdf-ren.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/lpdf-sig.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/lpdf-tag.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/lpdf-u3d.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/lpdf-wid.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/lpdf-xmp.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/luat-cnf.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/luat-ini.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/luat-lib.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/luat-log.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/lxml-mms.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/math-acc.mklx
    trunk/Master/texmf-dist/tex/context/base/mkxl/math-act.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/math-ali.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/math-com.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/math-def.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/math-del.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/math-dim.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/math-dld.mklx
    trunk/Master/texmf-dist/tex/context/base/mkxl/math-ext.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/math-fen.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/math-fnt.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/math-for.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/math-frc.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/math-frc.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/math-inc.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/math-ini.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/math-ini.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/math-lop.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/math-map.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/math-mis.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/math-noa.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/math-pln.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/math-rad.mklx
    trunk/Master/texmf-dist/tex/context/base/mkxl/math-spa.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/math-stc.mklx
    trunk/Master/texmf-dist/tex/context/base/mkxl/math-tag.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/math-twk.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/math-txt-imp-default.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/math-vfu.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/meta-fig.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/meta-imp-kaktovik.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/meta-imp-newmath.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/meta-ini.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/meta-nod.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/meta-pdf.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/meta-pdh.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/mlib-ctx.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/mlib-ctx.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/mlib-fio.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/mlib-fnt.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/mlib-int.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/mlib-lmp.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/mlib-lmt.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/mlib-mpf.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/mlib-pdf.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/mlib-pdf.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/mlib-pps.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/mlib-pps.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/mlib-run.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/mlib-scn.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/mlib-svg.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/mult-aux.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/mult-dim.mklx
    trunk/Master/texmf-dist/tex/context/base/mkxl/mult-ini.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/mult-ini.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/mult-sys.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/node-ali.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/node-aux.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/node-ext.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/node-ext.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/node-fin.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/node-fin.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/node-fnt.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/node-ini.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/node-nut.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/node-par.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/node-ref.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/node-res.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/node-rul.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/node-rul.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/node-scn.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/node-shp.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/node-snp.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/node-syn.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/node-tra.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/node-tsk.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/pack-bar.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/pack-bck.mklx
    trunk/Master/texmf-dist/tex/context/base/mkxl/pack-box.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/pack-com.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/pack-cut.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/pack-lyr.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/pack-mat.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/pack-mrl.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/pack-obj.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/pack-obj.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/pack-pos.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/pack-rul.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/pack-rul.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/page-app.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/page-bck.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/page-box.mklx
    trunk/Master/texmf-dist/tex/context/base/mkxl/page-brk.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/page-com.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/page-cst.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/page-ffl.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/page-flt.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/page-flw.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/page-imp.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/page-inf.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/page-ini.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/page-ins.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/page-lay.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/page-lin.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/page-lin.mklx
    trunk/Master/texmf-dist/tex/context/base/mkxl/page-mak.mklx
    trunk/Master/texmf-dist/tex/context/base/mkxl/page-mbk.mklx
    trunk/Master/texmf-dist/tex/context/base/mkxl/page-mcl.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/page-mix.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/page-mrk.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/page-not.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/page-one.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/page-otr.mklx
    trunk/Master/texmf-dist/tex/context/base/mkxl/page-par.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/page-pcl.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/page-plg.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/page-sel.mklx
    trunk/Master/texmf-dist/tex/context/base/mkxl/page-sid.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/page-spr.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/page-str.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/page-txt.mklx
    trunk/Master/texmf-dist/tex/context/base/mkxl/phys-dim.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/publ-inc.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/publ-ini.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/scrn-bar.mklx
    trunk/Master/texmf-dist/tex/context/base/mkxl/scrn-but.mklx
    trunk/Master/texmf-dist/tex/context/base/mkxl/scrn-fld.mklx
    trunk/Master/texmf-dist/tex/context/base/mkxl/scrn-ini.mklx
    trunk/Master/texmf-dist/tex/context/base/mkxl/scrn-pag.mklx
    trunk/Master/texmf-dist/tex/context/base/mkxl/scrn-ref.mklx
    trunk/Master/texmf-dist/tex/context/base/mkxl/scrn-wid.mklx
    trunk/Master/texmf-dist/tex/context/base/mkxl/spac-ali.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/spac-brk.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/spac-brk.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/spac-chr.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/spac-flr.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/spac-grd.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/spac-hor.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/spac-imp-tests.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/spac-lin.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/spac-pag.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/spac-par.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/spac-pas.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/spac-pas.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/spac-prf.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/spac-prf.mklx
    trunk/Master/texmf-dist/tex/context/base/mkxl/spac-ver.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/spac-ver.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/strc-bkm.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/strc-con.mklx
    trunk/Master/texmf-dist/tex/context/base/mkxl/strc-des.mklx
    trunk/Master/texmf-dist/tex/context/base/mkxl/strc-enu.mklx
    trunk/Master/texmf-dist/tex/context/base/mkxl/strc-flt.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/strc-flt.mklx
    trunk/Master/texmf-dist/tex/context/base/mkxl/strc-ind.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/strc-itm.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/strc-itm.mklx
    trunk/Master/texmf-dist/tex/context/base/mkxl/strc-lnt.mklx
    trunk/Master/texmf-dist/tex/context/base/mkxl/strc-lst.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/strc-lst.mklx
    trunk/Master/texmf-dist/tex/context/base/mkxl/strc-mar.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/strc-mar.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/strc-mat.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/strc-not.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/strc-not.mklx
    trunk/Master/texmf-dist/tex/context/base/mkxl/strc-num.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/strc-pag.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/strc-ref.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/strc-ref.mklx
    trunk/Master/texmf-dist/tex/context/base/mkxl/strc-reg.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/strc-reg.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/strc-ren.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/strc-sbe.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/strc-sec.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/strc-syn.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/strc-tag.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/strc-tag.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/strc-tnt.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/supp-box.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/supp-box.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/supp-ran.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/supp-ran.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/symb-ini.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/syst-aux.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/syst-aux.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/syst-con.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/syst-fnt.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/syst-ini.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/syst-pln.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/tabl-ali.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/tabl-com.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/tabl-frm.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/tabl-ltb.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/tabl-mis.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/tabl-ntb.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/tabl-tab.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/tabl-tbl.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/tabl-tsp.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/tabl-xtb.mklx
    trunk/Master/texmf-dist/tex/context/base/mkxl/task-ini.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/toks-aux.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/toks-ini.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/toks-scn.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/trac-brk.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/trac-brk.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/trac-deb.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/trac-inf.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/trac-riv.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/trac-tex.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/trac-vis.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/trac-vis.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/type-ini.mklx
    trunk/Master/texmf-dist/tex/context/base/mkxl/type-set.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/typo-ada.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/typo-ada.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/typo-adj.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/typo-bld.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/typo-brk.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/typo-brk.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/typo-cap.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/typo-chr.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/typo-chr.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/typo-cln.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/typo-del.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/typo-drp.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/typo-drp.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/typo-fln.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/typo-fln.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/typo-hid.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/typo-itc.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/typo-itc.mklx
    trunk/Master/texmf-dist/tex/context/base/mkxl/typo-itm.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/typo-krn.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/typo-lbx.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/typo-mar.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/typo-mar.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/typo-ovl.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/typo-ovl.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/typo-par.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/typo-plc.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/typo-rub.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/typo-rub.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/typo-scr.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/typo-shp.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/typo-shp.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/typo-spa.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/typo-spa.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/typo-sus.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/typo-sus.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/typo-syn.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/typo-syn.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/typo-tal.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/typo-txt.mklx
    trunk/Master/texmf-dist/tex/context/base/mkxl/unic-ini.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/util-jsn.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/util-pck.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/util-prs.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/util-sbx.lmt
    trunk/Master/texmf-dist/tex/context/fonts/mkiv/dejavu-math.lfg
    trunk/Master/texmf-dist/tex/context/fonts/mkiv/libertinus-math.lfg
    trunk/Master/texmf-dist/tex/context/fonts/mkiv/stixtwo-math.lfg
    trunk/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-cambria.mkiv
    trunk/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-minion.mkiv
    trunk/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-stix.mkiv
    trunk/Master/texmf-dist/tex/context/interface/mkiv/context-en.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-accent.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-align.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-backend.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-background.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-bar.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-blackrule.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-block.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-boxes.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-capitals.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-character.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-characteralign.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-characterspacing.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-chart.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-charwidth.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-color.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-combination.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-common-argument.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-common-assignment.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-common-instance.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-common-keyword.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-common-string.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-common-value.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-context.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-conversion.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-counter.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-delimitedtext.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-description.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-digits.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-enumeration.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-export.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-firstline.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-floats.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-fonts.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-formula.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-fraction.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-framed.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-graphics.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-hspace.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-initial.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-interaction.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-interlinespace.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-itemgroup.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-label.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-layout.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-linefiller.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-lines.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-list.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-logo.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-marginblock.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-marker.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-marking.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-math.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-mathalignment.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-mathcases.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-mathfence.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-mathmatrix.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-mathradical.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-mathstackers.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-mixedcolumns.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-modes.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-naturaltable.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-note.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-orientation.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-pagebreak.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-pagemarks.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-pageselection.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-profile.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-publication.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-random.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-readme.pdf
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-regime.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-register.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-section.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-sidebar.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-smash.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-sort.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-startstop.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-stream.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-strut.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-synctex.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-synonym.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-system.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-tabulation.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-tagging.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-textrule.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-thinrule.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-token.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-unit.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-userdata.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-verbatim.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-visualizer.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-vspace.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-whitespace.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-xml.xml
    trunk/Master/texmf-dist/tex/context/modules/mkiv/m-chart.lua
    trunk/Master/texmf-dist/tex/context/modules/mkiv/m-json.mkiv
    trunk/Master/texmf-dist/tex/context/modules/mkiv/m-scite.mkiv
    trunk/Master/texmf-dist/tex/context/modules/mkiv/m-typesetting.mkiv
    trunk/Master/texmf-dist/tex/context/modules/mkiv/s-abbreviations-logos.tex
    trunk/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-complete.mkiv
    trunk/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-features.lua
    trunk/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-tables.lua
    trunk/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-variable.mkiv
    trunk/Master/texmf-dist/tex/context/modules/mkiv/s-languages-system.lua
    trunk/Master/texmf-dist/tex/context/modules/mkiv/s-math-characters.lua
    trunk/Master/texmf-dist/tex/context/modules/mkiv/s-math-coverage.lua
    trunk/Master/texmf-dist/tex/context/modules/mkiv/s-present-boring.mkiv
    trunk/Master/texmf-dist/tex/context/modules/mkiv/s-xml-analyzers.lua
    trunk/Master/texmf-dist/tex/context/modules/mkiv/x-setups-basics.mkiv
    trunk/Master/texmf-dist/tex/context/modules/mkxl/m-json.mkxl
    trunk/Master/texmf-dist/tex/context/modules/mkxl/m-polynomial.mkxl
    trunk/Master/texmf-dist/tex/context/modules/mkxl/m-tikz.mkxl
    trunk/Master/texmf-dist/tex/context/modules/mkxl/s-characters-combinations.mkxl
    trunk/Master/texmf-dist/tex/context/modules/mkxl/s-fonts-show.mkxl
    trunk/Master/texmf-dist/tex/context/modules/mkxl/s-games-2023.mkxl
    trunk/Master/texmf-dist/tex/context/modules/mkxl/s-layout-show.mkxl
    trunk/Master/texmf-dist/tex/context/modules/mkxl/s-math-show.mkxl
    trunk/Master/texmf-dist/tex/context/modules/mkxl/s-system-syntax.lmt
    trunk/Master/texmf-dist/tex/context/modules/mkxl/s-system-syntax.mkxl
    trunk/Master/texmf-dist/tex/context/modules/mkxl/s-system-tokens.lmt
    trunk/Master/texmf-dist/tex/context/modules/mkxl/s-tugboat-columns.mkxl
    trunk/Master/texmf-dist/tex/context/modules/mkxl/x-asciimath.lmt
    trunk/Master/texmf-dist/tex/context/modules/mkxl/x-mathml.lmt
    trunk/Master/texmf-dist/tex/context/modules/mkxl/x-mathml.mkxl
    trunk/Master/texmf-dist/tex/context/modules/third/mtx-install-imp-modules.lua
    trunk/Master/texmf-dist/tex/context/patterns/common/lang-sq.rme
    trunk/Master/texmf-dist/tex/context/patterns/mkiv/lang-af.lua
    trunk/Master/texmf-dist/tex/context/patterns/mkiv/lang-agr.lua
    trunk/Master/texmf-dist/tex/context/patterns/mkiv/lang-ala.lua
    trunk/Master/texmf-dist/tex/context/patterns/mkiv/lang-bg.lua
    trunk/Master/texmf-dist/tex/context/patterns/mkiv/lang-bn.lua
    trunk/Master/texmf-dist/tex/context/patterns/mkiv/lang-ca.lua
    trunk/Master/texmf-dist/tex/context/patterns/mkiv/lang-cs.lua
    trunk/Master/texmf-dist/tex/context/patterns/mkiv/lang-cy.lua
    trunk/Master/texmf-dist/tex/context/patterns/mkiv/lang-da.lua
    trunk/Master/texmf-dist/tex/context/patterns/mkiv/lang-de.lua
    trunk/Master/texmf-dist/tex/context/patterns/mkiv/lang-deo.lua
    trunk/Master/texmf-dist/tex/context/patterns/mkiv/lang-eo.lua
    trunk/Master/texmf-dist/tex/context/patterns/mkiv/lang-es.lua
    trunk/Master/texmf-dist/tex/context/patterns/mkiv/lang-et.lua
    trunk/Master/texmf-dist/tex/context/patterns/mkiv/lang-eu.lua
    trunk/Master/texmf-dist/tex/context/patterns/mkiv/lang-fi.lua
    trunk/Master/texmf-dist/tex/context/patterns/mkiv/lang-fr.lua
    trunk/Master/texmf-dist/tex/context/patterns/mkiv/lang-gb.lua
    trunk/Master/texmf-dist/tex/context/patterns/mkiv/lang-gr.lua
    trunk/Master/texmf-dist/tex/context/patterns/mkiv/lang-gu.lua
    trunk/Master/texmf-dist/tex/context/patterns/mkiv/lang-hi.lua
    trunk/Master/texmf-dist/tex/context/patterns/mkiv/lang-hr.lua
    trunk/Master/texmf-dist/tex/context/patterns/mkiv/lang-hu.lua
    trunk/Master/texmf-dist/tex/context/patterns/mkiv/lang-hy.lua
    trunk/Master/texmf-dist/tex/context/patterns/mkiv/lang-id.lua
    trunk/Master/texmf-dist/tex/context/patterns/mkiv/lang-is.lua
    trunk/Master/texmf-dist/tex/context/patterns/mkiv/lang-it.lua
    trunk/Master/texmf-dist/tex/context/patterns/mkiv/lang-kn.lua
    trunk/Master/texmf-dist/tex/context/patterns/mkiv/lang-la.lua
    trunk/Master/texmf-dist/tex/context/patterns/mkiv/lang-lt.lua
    trunk/Master/texmf-dist/tex/context/patterns/mkiv/lang-lv.lua
    trunk/Master/texmf-dist/tex/context/patterns/mkiv/lang-mk.lua
    trunk/Master/texmf-dist/tex/context/patterns/mkiv/lang-ml.lua
    trunk/Master/texmf-dist/tex/context/patterns/mkiv/lang-mn.lua
    trunk/Master/texmf-dist/tex/context/patterns/mkiv/lang-nb.lua
    trunk/Master/texmf-dist/tex/context/patterns/mkiv/lang-nl.lua
    trunk/Master/texmf-dist/tex/context/patterns/mkiv/lang-nn.lua
    trunk/Master/texmf-dist/tex/context/patterns/mkiv/lang-pl.lua
    trunk/Master/texmf-dist/tex/context/patterns/mkiv/lang-pt.lua
    trunk/Master/texmf-dist/tex/context/patterns/mkiv/lang-ro.lua
    trunk/Master/texmf-dist/tex/context/patterns/mkiv/lang-ru.lua
    trunk/Master/texmf-dist/tex/context/patterns/mkiv/lang-sa.lua
    trunk/Master/texmf-dist/tex/context/patterns/mkiv/lang-sk.lua
    trunk/Master/texmf-dist/tex/context/patterns/mkiv/lang-sl.lua
    trunk/Master/texmf-dist/tex/context/patterns/mkiv/lang-sq.lua
    trunk/Master/texmf-dist/tex/context/patterns/mkiv/lang-sr.lua
    trunk/Master/texmf-dist/tex/context/patterns/mkiv/lang-sv.lua
    trunk/Master/texmf-dist/tex/context/patterns/mkiv/lang-ta.lua
    trunk/Master/texmf-dist/tex/context/patterns/mkiv/lang-te.lua
    trunk/Master/texmf-dist/tex/context/patterns/mkiv/lang-th.lua
    trunk/Master/texmf-dist/tex/context/patterns/mkiv/lang-tk.lua
    trunk/Master/texmf-dist/tex/context/patterns/mkiv/lang-tr.lua
    trunk/Master/texmf-dist/tex/context/patterns/mkiv/lang-uk.lua
    trunk/Master/texmf-dist/tex/context/patterns/mkiv/lang-us.lua
    trunk/Master/texmf-dist/tex/context/patterns/mkiv/lang-zh.lua
    trunk/Master/texmf-dist/tex/context/sample/common/cow.pdf
    trunk/Master/texmf-dist/tex/generic/context/luatex/luatex-fonts-merged.lua
    trunk/Master/texmf-dist/tex/generic/context/luatex/luatex-fonts.lua
    trunk/Master/texmf-dist/tex/generic/context/luatex/luatex-pdf.tex
    trunk/Master/tlpkg/libexec/ctan2tds

Added Paths:
-----------
    trunk/Master/texmf-dist/doc/context/documents/general/manuals/beyond.pdf
    trunk/Master/texmf-dist/doc/context/documents/general/manuals/canbedone.pdf
    trunk/Master/texmf-dist/doc/context/documents/general/manuals/examples-mathmeanings.pdf
    trunk/Master/texmf-dist/doc/context/documents/general/manuals/examples-naturaltables.pdf
    trunk/Master/texmf-dist/doc/context/documents/general/manuals/lowlevel-balancing.pdf
    trunk/Master/texmf-dist/doc/context/documents/general/manuals/mathincontext-paper.pdf
    trunk/Master/texmf-dist/doc/context/documents/general/manuals/mathincontext-screen.pdf
    trunk/Master/texmf-dist/doc/context/documents/general/manuals/tagging.pdf
    trunk/Master/texmf-dist/doc/context/presentations/context/2022/
    trunk/Master/texmf-dist/doc/context/presentations/context/2022/context-2022-style.tex
    trunk/Master/texmf-dist/doc/context/presentations/context/2024/
    trunk/Master/texmf-dist/doc/context/presentations/context/2024/context-2024-accessibility.pdf
    trunk/Master/texmf-dist/doc/context/presentations/context/2024/context-2024-accessibility.tex
    trunk/Master/texmf-dist/doc/context/presentations/context/2024/context-2024-compactfonts.pdf
    trunk/Master/texmf-dist/doc/context/presentations/context/2024/context-2024-compactfonts.tex
    trunk/Master/texmf-dist/doc/context/presentations/context/2024/context-2024-pdf-2.pdf
    trunk/Master/texmf-dist/doc/context/presentations/context/2024/context-2024-pdf-2.tex
    trunk/Master/texmf-dist/doc/context/presentations/context/2024/context-2024-segments.pdf
    trunk/Master/texmf-dist/doc/context/presentations/context/2024/context-2024-segments.tex
    trunk/Master/texmf-dist/doc/context/presentations/context/2024/context-2024-style.tex
    trunk/Master/texmf-dist/doc/context/presentations/context/2024/kingjames-001.png
    trunk/Master/texmf-dist/doc/context/presentations/context/2024/kingjames-002.png
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/beyond/
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/beyond/beyond-contents.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/beyond/beyond-introduction.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/beyond/beyond-namespaces.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/beyond/beyond-style.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/beyond/beyond-titlepage.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/beyond/beyond.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/canbedone/canbedone-clipping.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/examples/
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/examples/examples-mathmeanings.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/examples/examples-naturaltables.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/examples/examples-style-math.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/examples/examples-style.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/lowlevel/lowlevel-balancing.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/lowlevel/lowlevel-debugging.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/lowlevel/lowlevel-pages.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametafun/luametafun-envelope.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametafun/luametafun-lines.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametafun/luametafun-paths.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametafun/luametafun-potrace.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametafun/luametafun-synchronizers.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametatex/luametatex-assumptions.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametatex/luametatex-constructions.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametatex/luametatex-engines.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametatex/luametatex-internals.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametatex/luametatex-principles.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametatex/luametatex-tokens.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/musings/musings-riscv.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/musings/musings-viewers.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/ontarget/ontarget-mathml-example.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/ontarget/ontarget-mathml-meanings.pdf
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/ontarget/ontarget-mathml.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/ontarget/ontarget-pdf-2.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/tagging/
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/tagging/tagging.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/workflows/workflows-userdata.tex
    trunk/Master/texmf-dist/metapost/context/base/mpxl/mp-misc.mpxl
    trunk/Master/texmf-dist/scripts/context/lua/mtx-testsuite.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/char-ran.lua
    trunk/Master/texmf-dist/tex/context/base/mkiv/export-mathmlcore.css
    trunk/Master/texmf-dist/tex/context/base/mkiv/mtx-context-fixpdf.tex
    trunk/Master/texmf-dist/tex/context/base/mkxl/back-exp-imp-dejavu.lfg
    trunk/Master/texmf-dist/tex/context/base/mkxl/back-exp-imp-fnt.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/back-exp-imp-texgyre.lfg
    trunk/Master/texmf-dist/tex/context/base/mkxl/colo-icc.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/compactors-preset.lua
    trunk/Master/texmf-dist/tex/context/base/mkxl/font-imp-compound.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/font-oup.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/grph-exp.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/grph-raw.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/lpdf-tag-imp-crap.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/lpdf-tag-imp-mkiv.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/math-con.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/math-mps-imp-demo.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/math-mps.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/math-mps.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/math-rad.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/meta-imp-riven.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/meta-imp-segments.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/page-cst.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/page-ins.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/page-mvl.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/page-mvl.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/scrn-hlt.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/spac-ovl.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/spac-twi.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/trac-vsp.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/trac-vsp.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/typo-bal.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/typo-stc.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/typo-stc.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/typo-swp.lmt
    trunk/Master/texmf-dist/tex/context/base/mkxl/typo-swp.mkxl
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-adaptive.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-alternate.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-boxanchor.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-hiding.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-localboxes.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-mathaccent.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-mathdelimited.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-mathdelimiter.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-mathframed.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-mathfunction.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-mathnesting.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-mathoperator.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-optimize.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-overloads.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-pageblock.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-parshape.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-rivers.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-stacking.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-synchronize.xml
    trunk/Master/texmf-dist/tex/context/interface/mkiv/i-textdisplay.xml
    trunk/Master/texmf-dist/tex/context/modules/mkxl/m-bibles.lmt
    trunk/Master/texmf-dist/tex/context/modules/mkxl/m-bibles.mkxl
    trunk/Master/texmf-dist/tex/context/modules/mkxl/m-dirtree.mkxl
    trunk/Master/texmf-dist/tex/context/modules/mkxl/m-electrons.mkxl
    trunk/Master/texmf-dist/tex/context/modules/mkxl/m-mathfun.mkxl
    trunk/Master/texmf-dist/tex/context/modules/mkxl/m-oldcolumnsets.mkxl
    trunk/Master/texmf-dist/tex/context/modules/mkxl/m-simulate.mkxl
    trunk/Master/texmf-dist/tex/context/modules/mkxl/s-math-goodriddance.mkxl
    trunk/Master/texmf-dist/tex/context/modules/mkxl/s-math-verbatim.mkxl

Removed Paths:
-------------
    trunk/Master/texmf-dist/doc/context/documents/general/manuals/primitives.pdf
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametatex/luametatex-building.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametatex/luametatex-codes.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametatex/luametatex-enhancements.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametatex/luametatex-firstpage.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametatex/luametatex-modifications.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametatex/luametatex-registers.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametatex/luametatex-rejected.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametatex/luametatex-statistics.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametatex/luametatex-titlepage.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametatex/luatex-primitives.lua
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametatex/luatex-primitives.tex
    trunk/Master/texmf-dist/doc/context/sources/general/manuals/primitives/
    trunk/Master/texmf-dist/tex/context/base/mkxl/math-dif.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/math-int.mkxl
    trunk/Master/texmf-dist/tex/context/base/mkxl/strc-mar-old.mkxl
    trunk/Master/texmf-dist/tex/context/filenames.pdf
    trunk/Master/texmf-dist/tex/context/fonts/mkiv/koeielettersot.lfg
    trunk/Master/texmf-dist/tex/context/fonts/mkiv/lucida-math.lfg
    trunk/Master/texmf-dist/tex/context/fonts/mkiv/lucida-text.lfg
    trunk/Master/texmf-dist/tex/context/fonts/mkiv/lucida-typeone-math.lfg
    trunk/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-koeielettersot.mkiv
    trunk/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-lucida-typeone.mkiv
    trunk/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-lucida.mkiv

Modified: trunk/Master/bin/aarch64-linux/luametatex
===================================================================
(Binary files differ)

Modified: trunk/Master/bin/amd64-freebsd/luametatex
===================================================================
(Binary files differ)

Modified: trunk/Master/bin/i386-freebsd/luametatex
===================================================================
(Binary files differ)

Modified: trunk/Master/bin/i386-linux/luametatex
===================================================================
(Binary files differ)

Modified: trunk/Master/bin/universal-darwin/luametatex
===================================================================
(Binary files differ)

Modified: trunk/Master/bin/windows/context.exe
===================================================================
(Binary files differ)

Modified: trunk/Master/bin/windows/luametatex.exe
===================================================================
(Binary files differ)

Modified: trunk/Master/bin/windows/mtxrun.exe
===================================================================
(Binary files differ)

Modified: trunk/Master/bin/windows/mtxrun.lua
===================================================================
--- trunk/Master/bin/windows/mtxrun.lua	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/bin/windows/mtxrun.lua	2025-02-19 22:48:50 UTC (rev 74156)
@@ -194,7 +194,7 @@
 
 package.loaded["l-lua"] = package.loaded["l-lua"] or true
 
--- original size: 6405, stripped down to: 2865
+-- original size: 6546, stripped down to: 2909
 
 if not modules then modules={} end modules ['l-lua']={
  version=1.001,
@@ -208,6 +208,7 @@
 LUAMAJORVERSION=tonumber(LUAMAJORVERSION) or 5
 LUAMINORVERSION=tonumber(LUAMINORVERSION) or 1
 LUAVERSION=LUAMAJORVERSION+LUAMINORVERSION/10
+LUAFORMAT=status and status.lua_format or 0
 if LUAVERSION<5.2 and jit then
  MINORVERSION=2
  LUAVERSION=5.2
@@ -3867,7 +3868,7 @@
 
 package.loaded["l-os"] = package.loaded["l-os"] or true
 
--- original size: 20686, stripped down to: 10791
+-- original size: 20690, stripped down to: 10794
 
 if not modules then modules={} end modules ['l-os']={
  version=1.001,
@@ -4071,7 +4072,7 @@
   architecture=architecture or os.getenv("HOSTTYPE") or resultof("uname -m") or ""
   local musl=find(os.selfdir or "","linuxmusl")
   if find(architecture,"x86_64") then
-   bits,platform=64,musl and "linuxmusl" or "linux-64"
+   bits,platform=64,musl and "linuxmusl-64" or "linux-64"
   elseif find(architecture,"ppc") then
    bits,platform=32,"linux-ppc" 
   else
@@ -6604,7 +6605,7 @@
 
 package.loaded["util-str"] = package.loaded["util-str"] or true
 
--- original size: 46976, stripped down to: 24530
+-- original size: 46975, stripped down to: 24530
 
 if not modules then modules={} end modules ['util-str']={
  version=1.001,
@@ -7577,7 +7578,7 @@
 
 package.loaded["util-tab"] = package.loaded["util-tab"] or true
 
--- original size: 34148, stripped down to: 18419
+-- original size: 34169, stripped down to: 18433
 
 if not modules then modules={} end modules ['util-tab']={
  version=1.001,
@@ -7750,11 +7751,11 @@
   if tv=="table" then
    if tk=="number" then
     r=r+1 result[r]=formatters["%s<entry n='%s'>"](s,k)
-    toxml(v,d+step,result,step)
+    r=toxml(v,d+step,result,step)
     r=r+1 result[r]=formatters["%s</entry>"](s,k)
    else
     r=r+1 result[r]=formatters["%s<%s>"](s,k)
-    toxml(v,d+step,result,step)
+    r=toxml(v,d+step,result,step)
     r=r+1 result[r]=formatters["%s</%s>"](s,k)
    end
   elseif tv=="string" then
@@ -7769,6 +7770,7 @@
    r=r+1 result[r]=formatters["%s<%s>%S</%s>"](s,k,v,k)
   end
  end
+ return r
 end
 function table.toxml(t,specification)
  specification=specification or {}
@@ -14859,7 +14861,7 @@
 
 package.loaded["util-sbx"] = package.loaded["util-sbx"] or true
 
--- original size: 21146, stripped down to: 13272
+-- original size: 21376, stripped down to: 13435
 
 if not modules then modules={} end modules ['util-sbx']={
  version=1.001,
@@ -15196,6 +15198,15 @@
    return iopopen(command,"w") 
   end
  end,
+ command=function(...)
+  local command=validcommand(...)
+  if command then
+   if trace then
+    report("command: %s",command)
+   end
+   return command
+  end
+ end,
 }
 function sandbox.registerrunner(specification)
  if type(specification)=="string" then
@@ -15552,7 +15563,7 @@
 
 package.loaded["util-env"] = package.loaded["util-env"] or true
 
--- original size: 10014, stripped down to: 5102
+-- original size: 10594, stripped down to: 5492
 
 if not modules then modules={} end modules ['util-env']={
  version=1.001,
@@ -15565,6 +15576,7 @@
 local format,sub,match,gsub,find=string.format,string.sub,string.match,string.gsub,string.find
 local unquoted,quoted,optionalquoted=string.unquoted,string.quoted,string.optionalquoted
 local concat,insert,remove=table.concat,table.insert,table.remove
+local globfiles=dir.glob
 environment=environment or {}
 local environment=environment
 os.setlocale(nil,nil) function os.setlocale() end
@@ -15745,6 +15757,28 @@
  environment.rawarguments=mark(arg)
  arg={} 
 end
+function environment.globfiles(files)
+ if not files then
+  files=environment.files
+ end
+ if files then
+  local globbed={}
+  for i=1,#files do
+   local f=files[i]
+   if find(f,"%*") then
+    local g=globfiles(f)
+    if g then
+     for i=1,#g do
+      globbed[#globbed+1]=g[i]
+     end
+    end
+   else
+    globbed[#globbed+1]=f
+   end
+  end
+  return globbed
+ end
+end
 
 
 end -- of closure
@@ -24433,7 +24467,7 @@
 
 package.loaded["data-con"] = package.loaded["data-con"] or true
 
--- original size: 5477, stripped down to: 3757
+-- original size: 5733, stripped down to: 3900
 
 if not modules then modules={} end modules ['data-con']={
  version=1.100,
@@ -24457,6 +24491,7 @@
 local savedataincache=caches.savedata
 local report_containers=logs.reporter("resolvers","containers")
 local allocated={}
+local cache_format=1.001 
 local mt={
  __index=function(t,k)
   if k=="writable" then
@@ -24501,7 +24536,9 @@
 function containers.is_valid(container,name)
  if name and name~="" then
   local storage=container.storage[name]
-  return storage and storage.cache_version==container.version
+  return storage
+   and storage.cache_format==cache_format 
+   and storage.cache_version==container.version
  else
   return false
  end
@@ -24512,7 +24549,7 @@
  local stored=not reload and storage[name]
  if not stored and container.enabled and caches and containers.usecache then
   stored=loaddatafromcache(container.readables,name,container.writable)
-  if stored and stored.cache_version==container.version then
+  if stored and stored.cache_format==cache_format and stored.cache_version==container.version then
    if trace_cache or trace_containers then
     report_containers("action %a, category %a, name %a","load",container.subcategory,name)
    end
@@ -24529,6 +24566,7 @@
 end
 function containers.write(container,name,data,fast)
  if data then
+  data.cache_format=cache_format
   data.cache_version=container.version
   if container.enabled and caches then
    local unique=data.unique
@@ -24563,7 +24601,7 @@
 
 package.loaded["data-use"] = package.loaded["data-use"] or true
 
--- original size: 5806, stripped down to: 2925
+-- original size: 6168, stripped down to: 3201
 
 if not modules then modules={} end modules ['data-use']={
  version=1.001,
@@ -24589,6 +24627,7 @@
    sourcehash=md5.hex(io.loaddata(findfile(sourcefile)) or "unknown"),
    sourcefile=sourcefile,
    luaversion=LUAVERSION,
+   luaformat=LUAFORMAT or 0,
    formatid=LUATEXFORMATID,
    functionality=LUATEXFUNCTIONALITY,
   }
@@ -24597,7 +24636,7 @@
    if jit then
     logs.report("format banner","%s  lua: %s jit",banner,LUAVERSION)
    else
-    logs.report("format banner","%s  lua: %s",banner,LUAVERSION)
+    logs.report("format banner","%s  lua: %s, format: %s",banner,LUAVERSION,LUAFORMAT)
    end
    logs.newline()
   end,"show banner")
@@ -24624,6 +24663,11 @@
     if luvluaversion~=engluaversion then
      return format("lua mismatch (luv: %s <> bin: %s)",luvluaversion,engluaversion)
     end
+    local luvluaformat=luv.luaformat or 0
+    local engluaformat=LUAFORMAT or 0
+    if luvluaformat~=engluaformat then
+     return format("lua bytecode format mismatch (luv: %s <> bin: %s)",luvluaformat,engluaformat)
+    end
     local luvfunctionality=luv.functionality or 0
     local engfunctionality=status.development_id or 0
     if luvfunctionality~=engfunctionality then
@@ -26277,10 +26321,384 @@
 
 end -- of closure
 
--- used libraries    : l-bit32.lua l-lua.lua l-macro.lua l-sandbox.lua l-package.lua l-lpeg.lua l-function.lua l-string.lua l-table.lua l-io.lua l-number.lua l-set.lua l-os.lua l-file.lua l-gzip.lua l-md5.lua l-sha.lua l-url.lua l-dir.lua l-boolean.lua l-unicode.lua l-math.lua util-str.lua util-tab.lua util-fil.lua util-sac.lua util-sto.lua util-prs.lua util-fmt.lua util-soc-imp-reset.lua util-soc-imp-socket.lua util-soc-imp-copas.lua util-soc-imp-ltn12.lua util-soc-imp-mime.lua util-soc-imp-url.lua util-soc-imp-headers.lua util-soc-imp-tp.lua util-soc-imp-http.lua util-soc-imp-ftp.lua util-soc-imp-smtp.lua trac-set.lua trac-log.lua trac-inf.lua trac-pro.lua util-lua.lua util-deb.lua util-tpl.lua util-sbx.lua util-mrg.lua util-env.lua luat-env.lua util-zip.lua lxml-tab.lua lxml-lpt.lua lxml-mis.lua lxml-aux.lua lxml-xml.lua trac-xml.lua data-ini.lua data-exp.lua data-env.lua data-tmp.lua data-met.lua data-res.lua data-pre.lua data-inp.lua data-out.lua data-fil.lua data-con.lua data-use.lua data-zip.lua data-tre.lua data-sch.lua data-lua.lua data-aux.lua data-tmf.lua data-lst.lua libs-ini.lua luat-sta.lua luat-fmt.lua
+do -- create closure to overcome 200 locals limit
+
+package.loaded["util-jsn"] = package.loaded["util-jsn"] or true
+
+-- original size: 16718, stripped down to: 8910
+
+if not modules then modules={} end modules ['util-jsn']={
+ version=1.001,
+ comment="companion to m-json.mkiv",
+ author="Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright="PRAGMA ADE / ConTeXt Development Team",
+ license="see context related readme files"
+}
+if utilities and utilities.json then
+ return json
+end
+local P,V,R,S,C,Cc,Cs,Ct,Cf,Cg=lpeg.P,lpeg.V,lpeg.R,lpeg.S,lpeg.C,lpeg.Cc,lpeg.Cs,lpeg.Ct,lpeg.Cf,lpeg.Cg
+local lpegmatch=lpeg.match
+local format,gsub=string.format,string.gsub
+local formatters=string.formatters
+local utfchar=utf.char
+local concat,sortedkeys=table.concat,table.sortedkeys
+local tonumber,tostring,rawset,type,next=tonumber,tostring,rawset,type,next
+local json=utilities.json or {}
+utilities.json=json
+do
+ local lbrace=P("{")
+ local rbrace=P("}")
+ local lparent=P("[")
+ local rparent=P("]")
+ local comma=P(",")
+ local colon=P(":")
+ local dquote=P('"')
+ local whitespace=lpeg.patterns.whitespace
+ local optionalws=whitespace^0
+ local escapes={
+  ["b"]="\010",
+  ["f"]="\014",
+  ["n"]="\n",
+  ["r"]="\r",
+  ["t"]="\t",
+ }
+ local escape_un=P("\\u")/""*(C(R("09","AF","af")^-4)/function(s)
+  return utfchar(tonumber(s,16))
+ end)
+ local escape_bs=P([[\]])/""*(P(1)/escapes) 
+ local jstring=dquote*Cs((escape_un+escape_bs+(1-dquote))^0)*dquote
+ local jtrue=P("true")*Cc(true)
+ local jfalse=P("false")*Cc(false)
+ local jnull=P("null")*Cc(nil)
+ local jnumber=(1-whitespace-rparent-rbrace-comma)^1/tonumber
+ local key=jstring
+ local jsonconverter={ "value",
+  hash=lbrace*Cf(Ct("")*(V("pair")*(comma*V("pair"))^0+optionalws),rawset)*rbrace,
+  pair=Cg(optionalws*key*optionalws*colon*V("value")),
+  array=Ct(lparent*(V("value")*(comma*V("value"))^0+optionalws)*rparent),
+  value=optionalws*(jstring+V("hash")+V("array")+jtrue+jfalse+jnull+jnumber)*optionalws,
+ }
+ function json.tolua(str)
+  return lpegmatch(jsonconverter,str)
+ end
+ function json.load(filename)
+  local data=io.loaddata(filename)
+  if data then
+   return lpegmatch(jsonconverter,data)
+  end
+ end
+end
+do
+ local escaper
+ local f_start_hash=formatters[   '%w{' ]
+ local f_start_array=formatters[   '%w[' ]
+ local f_start_hash_new=formatters[ "\n"..'%w{' ]
+ local f_start_array_new=formatters[ "\n"..'%w[' ]
+ local f_start_hash_key=formatters[ "\n"..'%w"%s" : {' ]
+ local f_start_array_key=formatters[ "\n"..'%w"%s" : [' ]
+ local f_stop_hash=formatters[ "\n"..'%w}' ]
+ local f_stop_array=formatters[ "\n"..'%w]' ]
+ local f_key_val_seq=formatters[ "\n"..'%w"%s" : %s' ]
+ local f_key_val_str=formatters[ "\n"..'%w"%s" : "%s"'  ]
+ local f_key_val_num=f_key_val_seq
+ local f_key_val_yes=formatters[ "\n"..'%w"%s" : true'  ]
+ local f_key_val_nop=formatters[ "\n"..'%w"%s" : false' ]
+ local f_key_val_null=formatters[ "\n"..'%w"%s" : null'  ]
+ local f_val_num=formatters[ "\n"..'%w%s' ]
+ local f_val_str=formatters[ "\n"..'%w"%s"'  ]
+ local f_val_yes=formatters[ "\n"..'%wtrue'  ]
+ local f_val_nop=formatters[ "\n"..'%wfalse' ]
+ local f_val_null=formatters[ "\n"..'%wnull'  ]
+ local f_val_empty=formatters[ "\n"..'%w{ }'  ]
+ local f_val_seq=f_val_num
+ local t={}
+ local n=0
+ local function is_simple_table(tt) 
+  local l=#tt
+  if l>0 then
+   for i=1,l do
+    if type(tt[i])=="table" then
+     return false
+    end
+   end
+   local nn=n
+   n=n+1 t[n]="[ "
+   for i=1,l do
+    if i>1 then
+     n=n+1 t[n]=", "
+    end
+    local v=tt[i]
+    local tv=type(v)
+    if tv=="number" then
+     n=n+1 t[n]=v
+    elseif tv=="string" then
+     n=n+1 t[n]='"'
+     n=n+1 t[n]=lpegmatch(escaper,v) or v
+     n=n+1 t[n]='"'
+    elseif tv=="boolean" then
+     n=n+1 t[n]=v and "true" or "false"
+    elseif v then
+     n=n+1 t[n]=tostring(v)
+    else
+     n=n+1 t[n]="null"
+    end
+   end
+   n=n+1 t[n]=" ]"
+   local s=concat(t,"",nn+1,n)
+   n=nn
+   return s
+  end
+  return false
+ end
+ local function tojsonpp(root,name,depth,level,size)
+  if root then
+   local indexed=size>0
+   n=n+1
+   if level==0 then
+    if indexed then
+     t[n]=f_start_array(depth)
+    else
+     t[n]=f_start_hash(depth)
+    end
+   elseif name then
+    if tn=="string" then
+     name=lpegmatch(escaper,name) or name
+    elseif tn~="number" then
+     name=tostring(name)
+    end
+    if indexed then
+     t[n]=f_start_array_key(depth,name)
+    else
+     t[n]=f_start_hash_key(depth,name)
+    end
+   else
+    if indexed then
+     t[n]=f_start_array_new(depth)
+    else
+     t[n]=f_start_hash_new(depth)
+    end
+   end
+   depth=depth+1
+   if indexed then 
+    for i=1,size do
+     if i>1 then
+      n=n+1 t[n]=","
+     end
+     local v=root[i]
+     local tv=type(v)
+     if tv=="number" then
+      n=n+1 t[n]=f_val_num(depth,v)
+     elseif tv=="string" then
+      v=lpegmatch(escaper,v) or v
+      n=n+1 t[n]=f_val_str(depth,v)
+     elseif tv=="table" then
+      if next(v) then
+       local st=is_simple_table(v)
+       if st then
+        n=n+1 t[n]=f_val_seq(depth,st)
+       else
+        tojsonpp(v,nil,depth,level+1,#v)
+       end
+      else
+       n=n+1
+       t[n]=f_val_empty(depth)
+      end
+     elseif tv=="boolean" then
+      n=n+1
+      if v then
+       t[n]=f_val_yes(depth,v)
+      else
+       t[n]=f_val_nop(depth,v)
+      end
+     else
+      n=n+1
+      t[n]=f_val_null(depth)
+     end
+    end
+   elseif next(root) then
+    local sk=sortedkeys(root)
+    for i=1,#sk do
+     if i>1 then
+      n=n+1 t[n]=","
+     end
+     local k=sk[i]
+     local v=root[k]
+     local tv=type(v)
+     local tk=type(k)
+     if tv=="number" then
+      if tk=="number" then
+       n=n+1 t[n]=f_key_val_num(depth,k,v)
+      elseif tk=="string" then
+       k=lpegmatch(escaper,k) or k
+       n=n+1 t[n]=f_key_val_num(depth,k,v)
+      end
+     elseif tv=="string" then
+      if tk=="number" then
+       v=lpegmatch(escaper,v) or v
+       n=n+1 t[n]=f_key_val_str(depth,k,v)
+      elseif tk=="string" then
+       k=lpegmatch(escaper,k) or k
+       v=lpegmatch(escaper,v) or v
+       n=n+1 t[n]=f_key_val_str(depth,k,v)
+      elseif i>1 then
+       n=n-1
+      end
+     elseif tv=="table" then
+      local l=#v
+      if l>0 then
+       local st=is_simple_table(v)
+       if not st then
+        tojsonpp(v,k,depth,level+1,l)
+       elseif tk=="number" then
+        n=n+1 t[n]=f_key_val_seq(depth,k,st)
+       elseif tk=="string" then
+        k=lpegmatch(escaper,k) or k
+        n=n+1 t[n]=f_key_val_seq(depth,k,st)
+       end
+      elseif next(v) then
+       tojsonpp(v,k,depth,level+1,0)
+      elseif i>1 then
+       n=n-1
+      end
+     elseif tv=="boolean" then
+      if tk=="number" then
+       n=n+1
+       if v then
+        t[n]=f_key_val_yes(depth,k)
+       else
+        t[n]=f_key_val_nop(depth,k)
+       end
+      elseif tk=="string" then
+       k=lpegmatch(escaper,k) or k
+       n=n+1
+       if v then
+        t[n]=f_key_val_yes(depth,k)
+       else
+        t[n]=f_key_val_nop(depth,k)
+       end
+      elseif i>1 then
+       n=n-1
+      end
+     else
+      if tk=="number" then
+       n=n+1
+       t[n]=f_key_val_null(depth,k)
+      elseif tk=="string" then
+       k=lpegmatch(escaper,k) or k
+       n=n+1
+       t[n]=f_key_val_null(depth,k)
+      elseif i>1 then
+       n=n-1
+      end
+     end
+    end
+   end
+   n=n+1
+   if indexed then
+    t[n]=f_stop_array(depth-1)
+   else
+    t[n]=f_stop_hash(depth-1)
+   end
+  end
+ end
+ local function tojson(value,n)
+  local kind=type(value)
+  if kind=="table" then
+   local done=false
+   local size=#value
+   if size==0 then
+    for k,v in next,value do
+     if done then
+      n=n+1;t[n]=',"'
+     else
+      n=n+1;t[n]='{"'
+      done=true
+     end
+     n=n+1;t[n]=lpegmatch(escaper,k) or k
+     n=n+1;t[n]='":'
+     t,n=tojson(v,n)
+    end
+    if done then
+     n=n+1;t[n]="}"
+    else
+     n=n+1;t[n]="{}"
+    end
+   elseif size==1 then
+    n=n+1;t[n]="["
+    t,n=tojson(value[1],n)
+    n=n+1;t[n]="]"
+   else
+    for i=1,size do
+     if done then
+      n=n+1;t[n]=","
+     else
+      n=n+1;t[n]="["
+      done=true
+     end
+     t,n=tojson(value[i],n)
+    end
+    n=n+1;t[n]="]"
+   end
+  elseif kind=="string"  then
+   n=n+1;t[n]='"'
+   n=n+1;t[n]=lpegmatch(escaper,value) or value
+   n=n+1;t[n]='"'
+  elseif kind=="number" then
+   n=n+1;t[n]=value
+  elseif kind=="boolean" then
+   n=n+1;t[n]=tostring(value)
+  else
+   n=n+1;t[n]="null"
+  end
+  return t,n
+ end
+ local function jsontostring(value,pretty)
+  local kind=type(value)
+  if kind=="table" then
+   if not escaper then
+    local escapes={
+     ["\\"]="\\u005C",
+     ["\""]="\\u0022",
+    }
+    for i=0,0x1F do
+     escapes[utfchar(i)]=format("\\u%04X",i)
+    end
+    escaper=Cs((
+     (R('\0\x20')+S('\"\\'))/escapes+P(1)
+    )^1 )
+   end
+   t={}
+   n=0
+   if pretty then
+    tojsonpp(value,name,0,0,#value)
+    value=concat(t,"",1,n)
+   else
+    t,n=tojson(value,0)
+    value=concat(t,"",1,n)
+   end
+   t=nil
+   n=0
+   return value
+  elseif kind=="string" or kind=="number" then
+   return lpegmatch(escaper,value) or value
+  else
+   return tostring(value)
+  end
+ end
+ json.tostring=jsontostring
+ function json.tojson(value)
+  return jsontostring(value,true)
+ end
+end
+
+
+end -- of closure
+
+-- used libraries    : l-bit32.lua l-lua.lua l-macro.lua l-sandbox.lua l-package.lua l-lpeg.lua l-function.lua l-string.lua l-table.lua l-io.lua l-number.lua l-set.lua l-os.lua l-file.lua l-gzip.lua l-md5.lua l-sha.lua l-url.lua l-dir.lua l-boolean.lua l-unicode.lua l-math.lua util-str.lua util-tab.lua util-fil.lua util-sac.lua util-sto.lua util-prs.lua util-fmt.lua util-soc-imp-reset.lua util-soc-imp-socket.lua util-soc-imp-copas.lua util-soc-imp-ltn12.lua util-soc-imp-mime.lua util-soc-imp-url.lua util-soc-imp-headers.lua util-soc-imp-tp.lua util-soc-imp-http.lua util-soc-imp-ftp.lua util-soc-imp-smtp.lua trac-set.lua trac-log.lua trac-inf.lua trac-pro.lua util-lua.lua util-deb.lua util-tpl.lua util-sbx.lua util-mrg.lua util-env.lua luat-env.lua util-zip.lua lxml-tab.lua lxml-lpt.lua lxml-mis.lua lxml-aux.lua lxml-xml.lua trac-xml.lua data-ini.lua data-exp.lua data-env.lua data-tmp.lua data-met.lua data-res.lua data-pre.lua data-inp.lua data-out.lua data-fil.lua data-con.lua data-use.lua data-zip.lua data-tre.lua data-sch.lua data-lua.lua data-aux.lua data-tmf.lua data-lst.lua libs-ini.lua luat-sta.lua luat-fmt.lua util-jsn.lua
 -- skipped libraries : -
--- original bytes    : 1050273
--- stripped bytes    : 417643
+-- original bytes    : 1068584
+-- stripped bytes    : 426011
 
 -- end library merge
 
@@ -26399,6 +26817,7 @@
     'luat-sta.lua',
     'luat-fmt.lua',
 
+    'util-jsn.lua',
 }
 
 -- c:/data/develop/tex-context/tex/texmf-win64/bin/../../texmf-context/tex/context/base/mkiv/data-tmf.lua

Modified: trunk/Master/bin/x86_64-darwinlegacy/luametatex
===================================================================
(Binary files differ)

Modified: trunk/Master/bin/x86_64-linux/luametatex
===================================================================
(Binary files differ)

Modified: trunk/Master/bin/x86_64-linuxmusl/luametatex
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/context/data/scite/context/lexers/data/scite-context-data-context.lua
===================================================================
--- trunk/Master/texmf-dist/context/data/scite/context/lexers/data/scite-context-data-context.lua	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/context/data/scite/context/lexers/data/scite-context-data-context.lua	2025-02-19 22:48:50 UTC (rev 74156)
@@ -1,4 +1,4 @@
 return {
- ["constants"]={ "zerocount", "minusone", "minustwo", "plusone", "plustwo", "plusthree", "plusfour", "plusfive", "plussix", "plusseven", "pluseight", "plusnine", "plusten", "pluseleven", "plustwelve", "plussixteen", "plusfifty", "plushundred", "plusonehundred", "plustwohundred", "plusfivehundred", "plusthousand", "plustenthousand", "plustwentythousand", "medcard", "maxcard", "maxcardminusone", "maxiterator", "zeropoint", "onepoint", "halfapoint", "onebasepoint", "maxcount", "maxdimen", "scaledpoint", "thousandpoint", "points", "halfpoint", "zeroskip", "centeringskip", "stretchingskip", "shrinkingskip", "centeringfillskip", "stretchingfillskip", "shrinkingfillskip", "centeringfilllskip", "stretchingfilllskip", "shrinkingfilllskip", "zeromuskip", "onemuskip", "pluscxxvii", "pluscxxviii", "pluscclv", "pluscclvi", "normalpagebox", "binaryshiftedten", "binaryshiftedtwenty", "binaryshiftedthirty", "thickermuskip", "continuationmuskip", "fencemuskip", "mathinterwordmuskip", "zerofloat", "directionlefttoright", "directionrighttoleft", "endoflinetoken", "outputnewlinechar", "emptytoks", "empty", "undefined", "prerollrun", "voidbox", "emptybox", "emptyvbox", "emptyhbox", "bigskipamount", "medskipamount", "smallskipamount", "fmtname", "fmtversion", "texengine", "texenginename", "texengineversion", "texenginefunctionality", "luatexengine", "pdftexengine", "xetexengine", "unknownengine", "contextformat", "contextversion", "contextlmtxmode", "contextmark", "mksuffix", "activecatcode", "bgroup", "egroup", "endline", "conditionaltrue", "conditionalfalse", "attributeunsetvalue", "statuswrite", "uprotationangle", "rightrotationangle", "downrotationangle", "leftrotationangle", "inicatcodes", "ctxcatcodes", "texcatcodes", "notcatcodes", "txtcatcodes", "vrbcatcodes", "prtcatcodes", "nilcatcodes", "luacatcodes", "tpacatcodes", "tpbcatcodes", "xmlcatcodes", "ctdcatcodes", "rlncatcodes", "escapecatcode", "begingroupcatcode", "endgroupcatcode", "mathshiftcatcode", "alignmentcatcode", "endoflinecatcode", "parametercatcode", "sup!
 erscriptcatcode", "subscriptcatcode", "ignorecatcode", "spacecatcode", "lettercatcode", "othercatcode", "activecatcode", "commentcatcode", "invalidcatcode", "tabasciicode", "newlineasciicode", "formfeedasciicode", "endoflineasciicode", "endoffileasciicode", "commaasciicode", "spaceasciicode", "periodasciicode", "hashasciicode", "dollarasciicode", "commentasciicode", "ampersandasciicode", "colonasciicode", "semicolonasciicode", "backslashasciicode", "circumflexasciicode", "underscoreasciicode", "leftbraceasciicode", "barasciicode", "rightbraceasciicode", "tildeasciicode", "delasciicode", "leftparentasciicode", "rightparentasciicode", "lessthanasciicode", "morethanasciicode", "doublecommentsignal", "atsignasciicode", "exclamationmarkasciicode", "questionmarkasciicode", "doublequoteasciicode", "singlequoteasciicode", "forwardslashasciicode", "primeasciicode", "hyphenasciicode", "percentasciicode", "leftbracketasciicode", "rightbracketasciicode", "zeroasciicode", "nineasciicode", "alowercaseasciicode", "zlowercaseasciicode", "hsizefrozenparcode", "skipfrozenparcode", "hangfrozenparcode", "indentfrozenparcode", "parfillfrozenparcode", "adjustfrozenparcode", "protrudefrozenparcode", "tolerancefrozenparcode", "stretchfrozenparcode", "loosenessfrozenparcode", "lastlinefrozenparcode", "linepenaltyfrozenparcode", "clubpenaltyfrozenparcode", "widowpenaltyfrozenparcode", "displaypenaltyfrozenparcode", "brokenpenaltyfrozenparcode", "demeritsfrozenparcode", "shapefrozenparcode", "linefrozenparcode", "hyphenationfrozenparcode", "shapingpenaltyfrozenparcode", "orphanpenaltyfrozenparcode", "allfrozenparcode", "emergencyfrozenparcode", "parpassesfrozenparcode", "singlelinepenaltyfrozenparcode", "activemathcharcode", "activetabtoken", "activeformfeedtoken", "activeendoflinetoken", "batchmodecode", "nonstopmodecode", "scrollmodecode", "errorstopmodecode", "bottomlevelgroupcode", "simplegroupcode", "hboxgroupcode", "adjustedhboxgroupcode", "vboxgroupcode", "vtopgroupcode", "aligngroupcode", "noaligngroupcode", "outputgroupcode", "ma!
 thgroupcode", "discretionarygroupcode", "insertgroupcode", "vadjustgroupcode", "vcentergroupcode", "mathabovegroupcode", "mathchoicegroupcode", "alsosimplegroupcode", "semisimplegroupcode", "mathshiftgroupcode", "mathleftgroupcode", "localboxgroupcode", "splitoffgroupcode", "splitkeepgroupcode", "preamblegroupcode", "alignsetgroupcode", "finrowgroupcode", "discretionarygroupcode", "markautomigrationcode", "insertautomigrationcode", "adjustautomigrationcode", "preautomigrationcode", "postautomigrationcode", "charnodecode", "hlistnodecode", "vlistnodecode", "rulenodecode", "insertnodecode", "marknodecode", "adjustnodecode", "ligaturenodecode", "discretionarynodecode", "whatsitnodecode", "mathnodecode", "gluenodecode", "kernnodecode", "penaltynodecode", "unsetnodecode", "mathsnodecode", "overrulemathcontrolcode", "underrulemathcontrolcode", "radicalrulemathcontrolcode", "fractionrulemathcontrolcode", "accentskewhalfmathcontrolcode", "accentskewapplymathcontrolcode", "applyordinarykernpairmathcontrolcode", "applyverticalitalickernmathcontrolcode", "applyordinaryitalickernmathcontrolcode", "applycharitalickernmathcontrolcode", "reboxcharitalickernmathcontrolcode", "applyboxeditalickernmathcontrolcode", "staircasekernmathcontrolcode", "applytextitalickernmathcontrolcode", "applyscriptitalickernmathcontrolcode", "checkspaceitalickernmathcontrolcode", "checktextitalickernmathcontrolcode", "analyzescriptnucleuscharmathcontrolcode", "analyzescriptnucleuslistmathcontrolcode", "analyzescriptnucleusboxmathcontrolcode", "accenttopskewwithoffsetmathcontrolcode", "ignorekerndimensionsmathcontrolcode", "ignoreflataccentsmathcontrolcode", "extendaccentsmathcontrolcode", "extenddelimitersmathcontrolcode", "normalparcontextcode", "vmodeparcontextcode", "vboxparcontextcode", "vtopparcontextcode", "vcenterparcontextcode", "vadjustparcontextcode", "insertparcontextcode", "outputparcontextcode", "alignparcontextcode", "noalignparcontextcode", "spanparcontextcode", "resetparcontextcode", "normalparbegincode", "forceparbegincode", "inden!
 tparbegincode", "noindentparbegincode", "mathcharparbegincode", "charparbegincode", "boundaryparbegincode", "spaceparbegincode", "mathparbegincode", "kernparbegincode", "hskipparbegincode", "unhboxparbegincode", "valignparbegincode", "vruleparbegincode", "fixedsuperorsubscriptsmodecode", "fixedsuperandsubscriptsmodecode", "ignoreemptyscriptsmodecode", "ignoreemptysuperscriptsmodecode", "ignoreemptysubscriptsmodecode", "ignoreemptyprimescriptsmodecode", "inheritclassdoublescriptmodecode", "discardshapekerndoublescriptmodecode", "realignscriptsdoublescriptmodecode", "reorderprescriptsdoublescriptmodecode", "leftoriginlistanchorcode", "leftheightlistanchorcode", "leftdepthlistanchorcode", "rightoriginlistanchorcode", "rightheightlistanchorcode", "rightdepthlistanchorcode", "centeroriginlistanchorcode", "centerheightlistanchorcode", "centerdepthlistanchorcode", "halfwaytotallistanchorcode", "halfwayheightlistanchorcode", "halfwaydepthlistanchorcode", "halfwayleftlistanchorcode", "halfwayrightlistanchorcode", "negatexlistsigncode", "negateylistsigncode", "negatelistsigncode", "fontslantperpoint", "fontinterwordspace", "fontinterwordstretch", "fontinterwordshrink", "fontexheight", "fontemwidth", "fontextraspace", "slantperpoint", "mathexheight", "mathemwidth", "interwordspace", "interwordstretch", "interwordshrink", "exheight", "emwidth", "extraspace", "mathaxisheight", "muquad", "startmode", "stopmode", "startnotmode", "stopnotmode", "startmodeset", "stopmodeset", "doifmode", "doifelsemode", "doifmodeelse", "doifnotmode", "startmodeset", "stopmodeset", "startallmodes", "stopallmodes", "startnotallmodes", "stopnotallmodes", "doifallmodes", "doifelseallmodes", "doifallmodeselse", "doifnotallmodes", "startenvironment", "stopenvironment", "environment", "startcomponent", "stopcomponent", "component", "startlocalcomponent", "stoplocalcomponent", "startproduct", "stopproduct", "product", "startproject", "stopproject", "project", "starttext", "stoptext", "startnotext", "stopnotext", "startdocument", "stopdocument", "documen!
 tvariable", "unexpandeddocumentvariable", "setupdocument", "presetdocument", "doifelsedocumentvariable", "doifdocumentvariableelse", "doifdocumentvariable", "doifnotdocumentvariable", "startmodule", "stopmodule", "usemodule", "usetexmodule", "useluamodule", "setupmodule", "currentmoduleparameter", "moduleparameter", "everystarttext", "everystoptext", "everyforgetall", "luaenvironment", "startTEXpage", "stopTEXpage", "enablemode", "disablemode", "preventmode", "definemode", "globalenablemode", "globaldisablemode", "globalpreventmode", "pushmode", "popmode", "typescriptone", "typescripttwo", "typescriptthree", "mathsizesuffix", "mathordinarycode", "mathordcode", "mathoperatorcode", "mathopcode", "mathbinarycode", "mathbincode", "mathrelationcode", "mathrelcode", "mathopencode", "mathclosecode", "mathpunctuationcode", "mathpunctcode", "mathovercode", "mathundercode", "mathinnercode", "mathradicalcode", "mathfractioncode", "mathmiddlecode", "mathprimecode", "mathaccentcode", "mathfencedcode", "mathghostcode", "mathvariablecode", "mathactivecode", "mathvcentercode", "mathconstructcode", "mathwrappedcode", "mathbegincode", "mathendcode", "mathexplicitcode", "mathdivisioncode", "mathfactorialcode", "mathdimensioncode", "mathexperimentalcode", "mathtextpunctuationcode", "mathcontinuationcode", "mathimaginarycode", "mathdifferentialcode", "mathexponentialcode", "mathintegralcode", "mathellipsiscode", "mathfunctioncode", "mathdigitcode", "mathalphacode", "mathboxcode", "mathchoicecode", "mathnothingcode", "mathlimopcode", "mathnolopcode", "mathunsetcode", "mathunspacedcode", "mathallcode", "mathfakecode", "mathunarycode", "mathmaybeordinarycode", "mathmayberelationcode", "mathmaybebinarycode", "mathnumbergroupcode", "mathchemicalbondcode", "mathimplicationcode", "constantnumber", "constantnumberargument", "constantdimen", "constantdimenargument", "constantemptyargument", "luastringsep", "!!bs", "!!es", "lefttorightmark", "righttoleftmark", "lrm", "rlm", "bidilre", "bidirle", "bidipop", "bidilro", "bidirlo", "breakablethin!
 space", "nobreakspace", "nonbreakablespace", "narrownobreakspace", "zerowidthnobreakspace", "ideographicspace", "ideographichalffillspace", "twoperemspace", "threeperemspace", "fourperemspace", "fiveperemspace", "sixperemspace", "figurespace", "punctuationspace", "hairspace", "enquad", "emquad", "zerowidthspace", "zerowidthnonjoiner", "zerowidthjoiner", "zwnj", "zwj", "optionalspace", "asciispacechar", "softhyphen", "autoinsertedspace", "Ux", "eUx", "startlmtxmode", "stoplmtxmode", "startmkivmode", "stopmkivmode", "wildcardsymbol", "normalhyphenationcode", "automatichyphenationcode", "explicithyphenationcode", "syllablehyphenationcode", "uppercasehyphenationcode", "collapsehyphenationcode", "compoundhyphenationcode", "strictstarthyphenationcode", "strictendhyphenationcode", "automaticpenaltyhyphenationcode", "explicitpenaltyhyphenationcode", "permitgluehyphenationcode", "permitallhyphenationcode", "permitmathreplacehyphenationcode", "forcecheckhyphenationcode", "lazyligatureshyphenationcode", "forcehandlerhyphenationcode", "feedbackcompoundhyphenationcode", "ignoreboundshyphenationcode", "partialhyphenationcode", "completehyphenationcode", "normalizelinenormalizecode", "parindentskipnormalizecode", "swaphangindentnormalizecode", "swapparsshapenormalizecode", "breakafterdirnormalizecode", "removemarginkernsnormalizecode", "clipwidthnormalizecode", "flattendiscretionariesnormalizecode", "discardzerotabskipsnormalizecode", "flattenhleadersnormalizecode", "normalizeparnormalizeparcode", "flattenvleadersnormalizeparcode", "limitprevgrafnormalizeparcode", "nopreslackclassoptioncode", "nopostslackclassoptioncode", "lefttopkernclassoptioncode", "righttopkernclassoptioncode", "leftbottomkernclassoptioncode", "rightbottomkernclassoptioncode", "lookaheadforendclassoptioncode", "noitaliccorrectionclassoptioncode", "defaultmathclassoptions", "checkligatureclassoptioncode", "checkitaliccorrectionclassoptioncode", "checkkernpairclassoptioncode", "flattenclassoptioncode", "omitpenaltyclassoptioncode", "unpackclassoptioncode", "!
 raiseprimeclassoptioncode", "carryoverlefttopkernclassoptioncode", "carryoverleftbottomkernclassoptioncode", "carryoverrighttopkernclassoptioncode", "carryoverrightbottomkernclassoptioncode", "preferdelimiterdimensionsclassoptioncode", "autoinjectclassoptioncode", "removeitaliccorrectionclassoptioncode", "operatoritaliccorrectionclassoptioncode", "shortinlineclassoptioncode", "pushnestingclassoptioncode", "popnestingclassoptioncode", "obeynestingclassoptioncode", "noitaliccorrectionglyphoptioncode", "nozeroitaliccorrectionglyphoptioncode", "noexpansionglyphoptioncode", "noprotrusionglyphoptioncode", "noleftkernglyphoptioncode", "norightkernglyphoptioncode", "noleftligatureglyphoptioncode", "norightligatureglyphoptioncode", "textcheckitalicglyphoptioncode", "mathcheckitalicglyphoptioncode", "nokerningcode", "noligaturingcode", "noitalicscode", "indecentparpassclasses", "looseparpassclasses", "tightparpassclasses", "verylooseparpassclass", "looseparpassclass", "semilooseparpassclass", "decentparpassclass", "almostdecentparpassclasses", "semitightparpassclass", "tightparpassclass", "frozenflagcode", "tolerantflagcode", "protectedflagcode", "primitiveflagcode", "permanentflagcode", "noalignedflagcode", "immutableflagcode", "mutableflagcode", "globalflagcode", "overloadedflagcode", "immediateflagcode", "conditionalflagcode", "valueflagcode", "instanceflagcode", "ordmathflattencode", "binmathflattencode", "relmathflattencode", "punctmathflattencode", "innermathflattencode", "normalworddiscoptioncode", "preworddiscoptioncode", "postworddiscoptioncode", "preferbreakdiscoptioncode", "prefernobreakdiscoptioncode", "noitaliccorrectiondiscoptioncode", "nozeroitaliccorrectiondiscoptioncode", "textcheckitalicdiscoptioncode", "continueifinputfile", "continuewhenlmtxmode", "continuewhenmkivmode", "uunit" },
- ["helpers"]={ "pushglobalsetups", "popglobalsetups", "startsetups", "stopsetups", "startxmlsetups", "stopxmlsetups", "startluasetups", "stopluasetups", "starttexsetups", "stoptexsetups", "startrawsetups", "stoprawsetups", "startlocalsetups", "stoplocalsetups", "starttexdefinition", "stoptexdefinition", "starttexcode", "stoptexcode", "startcontextcode", "stopcontextcode", "startcontextdefinitioncode", "stopcontextdefinitioncode", "texdefinition", "doifelsesetups", "doifsetupselse", "doifsetups", "doifnotsetups", "setup", "setups", "texsetup", "xmlsetup", "luasetup", "directsetup", "fastsetup", "copysetups", "resetsetups", "doifelsecommandhandler", "doifcommandhandlerelse", "doifnotcommandhandler", "doifcommandhandler", "newmode", "setmode", "resetmode", "newsystemmode", "setsystemmode", "resetsystemmode", "pushsystemmode", "popsystemmode", "globalsetmode", "globalresetmode", "globalsetsystemmode", "globalresetsystemmode", "booleanmodevalue", "newcount", "newdimen", "newskip", "newmuskip", "newbox", "newtoks", "newread", "newwrite", "newmarks", "newinsert", "newattribute", "newif", "newfloat", "newlanguage", "newfamily", "newfam", "newhelp", "newuserunit", "newinteger", "newdimension", "newgluespec", "newmugluespec", "newposit", "aliasinteger", "aliasdimension", "aliasposit", "then", "begcsname", "autorule", "tobit", "tobits", "tohexa", "strippedcsname", "checkedstrippedcsname", "nofarguments", "firstargumentfalse", "firstargumenttrue", "secondargumentfalse", "secondargumenttrue", "thirdargumentfalse", "thirdargumenttrue", "fourthargumentfalse", "fourthargumenttrue", "fifthargumentfalse", "fifthargumenttrue", "sixthargumentfalse", "sixthargumenttrue", "seventhargumentfalse", "seventhargumenttrue", "doglobal", "dodoglobal", "redoglobal", "resetglobal", "donothing", "untraceddonothing", "dontcomplain", "moreboxtracing", "lessboxtracing", "noboxtracing", "forgetall", "donetrue", "donefalse", "foundtrue", "foundfalse", "globaldonetrue", "globaldonefalse", "globalfoundtrue", "globalfoundfalse", "inlineordispl!
 aymath", "indisplaymath", "forcedisplaymath", "startforceddisplaymath", "stopforceddisplaymath", "startpickupmath", "stoppickupmath", "reqno", "forceinlinemath", "mathortext", "thebox", "htdp", "unvoidbox", "hfilll", "vfilll", "mathbox", "mathlimop", "mathnolop", "mathnothing", "mathalpha", "currentcatcodetable", "defaultcatcodetable", "catcodetablename", "newcatcodetable", "startcatcodetable", "stopcatcodetable", "startextendcatcodetable", "stopextendcatcodetable", "pushcatcodetable", "popcatcodetable", "restorecatcodes", "setcatcodetable", "letcatcodecommand", "defcatcodecommand", "uedcatcodecommand", "hglue", "vglue", "hfillneg", "vfillneg", "hfilllneg", "vfilllneg", "hsplit", "ruledhss", "ruledhfil", "ruledhfill", "ruledhfilll", "ruledhfilneg", "ruledhfillneg", "normalhfillneg", "normalhfilllneg", "ruledvss", "ruledvfil", "ruledvfill", "ruledvfilll", "ruledvfilneg", "ruledvfillneg", "normalvfillneg", "normalvfilllneg", "ruledhbox", "ruledvbox", "ruledvtop", "ruleddbox", "ruledvcenter", "ruledmbox", "ruledhpack", "ruledvpack", "ruledtpack", "ruleddpack", "ruledvsplit", "ruledtsplit", "ruleddsplit", "ruledhskip", "ruledvskip", "ruledkern", "ruledmskip", "ruledmkern", "ruledhglue", "ruledvglue", "normalhglue", "normalvglue", "ruledpenalty", "filledhboxb", "filledhboxr", "filledhboxg", "filledhboxc", "filledhboxm", "filledhboxy", "filledhboxk", "scratchstring", "scratchstringone", "scratchstringtwo", "tempstring", "scratchcounter", "globalscratchcounter", "privatescratchcounter", "scratchfloat", "globalscratchfloat", "privatescratchfloat", "scratchdimen", "globalscratchdimen", "privatescratchdimen", "scratchskip", "globalscratchskip", "privatescratchskip", "scratchmuskip", "globalscratchmuskip", "privatescratchmuskip", "scratchtoks", "globalscratchtoks", "privatescratchtoks", "scratchbox", "globalscratchbox", "privatescratchbox", "scratchmacro", "scratchmacroone", "scratchmacrotwo", "scratchconditiontrue", "scratchconditionfalse", "ifscratchcondition", "scratchconditiononetrue", "scratchconditiononefalse", "ifsc!
 ratchconditionone", "scratchconditiontwotrue", "scratchconditiontwofalse", "ifscratchconditiontwo", "globalscratchcounterone", "globalscratchcountertwo", "globalscratchcounterthree", "groupedcommand", "groupedcommandcs", "triggergroupedcommand", "triggergroupedcommandcs", "simplegroupedcommand", "simplegroupedcommandcs", "pickupgroupedcommand", "pickupgroupedcommandcs", "mathgroupedcommandcs", "usedbaselineskip", "usedlineskip", "usedlineskiplimit", "availablehsize", "localhsize", "setlocalhsize", "distributedhsize", "hsizefraction", "next", "nexttoken", "nextbox", "dowithnextbox", "dowithnextboxcs", "dowithnextboxcontent", "dowithnextboxcontentcs", "flushnextbox", "boxisempty", "boxtostring", "contentostring", "prerolltostring", "givenwidth", "givenheight", "givendepth", "scangivendimensions", "scratchwidth", "scratchheight", "scratchdepth", "scratchoffset", "scratchdistance", "scratchtotal", "scratchitalic", "scratchhsize", "scratchvsize", "scratchclass", "scratchxoffset", "scratchyoffset", "scratchhoffset", "scratchvoffset", "scratchxposition", "scratchyposition", "scratchtopoffset", "scratchbottomoffset", "scratchleftoffset", "scratchrightoffset", "scratchcounterone", "scratchcountertwo", "scratchcounterthree", "scratchcounterfour", "scratchcounterfive", "scratchcountersix", "scratchfloatone", "scratchfloattwo", "scratchfloatthree", "scratchfloatfour", "scratchfloatfive", "scratchfloatsix", "scratchdimenone", "scratchdimentwo", "scratchdimenthree", "scratchdimenfour", "scratchdimenfive", "scratchdimensix", "scratchskipone", "scratchskiptwo", "scratchskipthree", "scratchskipfour", "scratchskipfive", "scratchskipsix", "scratchmuskipone", "scratchmuskiptwo", "scratchmuskipthree", "scratchmuskipfour", "scratchmuskipfive", "scratchmuskipsix", "scratchtoksone", "scratchtokstwo", "scratchtoksthree", "scratchtoksfour", "scratchtoksfive", "scratchtokssix", "scratchboxone", "scratchboxtwo", "scratchboxthree", "scratchboxfour", "scratchboxfive", "scratchboxsix", "scratchnx", "scratchny", "scratchmx", "scratchmy", "scra!
 tchunicode", "scratchunicodeone", "scratchunicodetwo", "scratchunicodethree", "scratchmin", "scratchmax", "scratchread", "scratchwrite", "pfsin", "pfcos", "pftan", "pfasin", "pfacos", "pfatan", "pfsinh", "pfcosh", "pftanh", "pfasinh", "pfacosh", "pfatanh", "pfsqrt", "pflog", "pfexp", "pfceil", "pffloor", "pfround", "pfabs", "pfrad", "pfdeg", "pfatantwo", "pfpow", "pfmod", "pfrem", "scratchleftskip", "scratchrightskip", "scratchtopskip", "scratchbottomskip", "doif", "doifnot", "doifelse", "firstinset", "doifinset", "doifnotinset", "doifelseinset", "doifinsetelse", "doifelsenextchar", "doifnextcharelse", "doifelsenextcharcs", "doifnextcharcselse", "doifelsenextoptional", "doifnextoptionalelse", "doifelsenextoptionalcs", "doifnextoptionalcselse", "doifelsefastoptionalcheck", "doiffastoptionalcheckelse", "doifelsefastoptionalcheckcs", "doiffastoptionalcheckcselse", "doifelsenextbgroup", "doifnextbgroupelse", "doifelsenextbgroupcs", "doifnextbgroupcselse", "doifelsenextparenthesis", "doifnextparenthesiselse", "doifelseundefined", "doifundefinedelse", "doifelsedefined", "doifdefinedelse", "doifundefined", "doifdefined", "doifelsevalue", "doifvalue", "doifnotvalue", "doifnothing", "doifsomething", "doifelsenothing", "doifnothingelse", "doifelsesomething", "doifsomethingelse", "doifvaluenothing", "doifvaluesomething", "doifelsevaluenothing", "doifvaluenothingelse", "doifelsedimension", "doifdimensionelse", "doifelsenumber", "doifnumberelse", "doifnumber", "doifnotnumber", "doifelsecommon", "doifcommonelse", "doifcommon", "doifnotcommon", "doifinstring", "doifnotinstring", "doifelseinstring", "doifinstringelse", "doifelseassignment", "doifassignmentelse", "docheckassignment", "doifelseassignmentcs", "doifassignmentelsecs", "validassignment", "novalidassignment", "doiftext", "doifelsetext", "doiftextelse", "doifnottext", "validtext", "quitcondition", "truecondition", "falsecondition", "tracingall", "tracingnone", "loggingall", "tracingcatcodes", "showluatokens", "aliasmacro", "removetoks", "appendtoks", "prependtoks", "ap!
 pendtotoks", "prependtotoks", "to", "endgraf", "endpar", "reseteverypar", "finishpar", "empty", "null", "space", "quad", "enspace", "emspace", "charspace", "nbsp", "crlf", "obeyspaces", "obeylines", "obeytabs", "obeypages", "obeyedspace", "obeyedline", "obeyedtab", "obeyedpage", "normalspace", "naturalspace", "controlspace", "normalspaces", "ignoretabs", "ignorelines", "ignorepages", "ignoreeofs", "setcontrolspaces", "executeifdefined", "singleexpandafter", "doubleexpandafter", "tripleexpandafter", "dontleavehmode", "removelastspace", "removeunwantedspaces", "keepunwantedspaces", "removepunctuation", "ignoreparskip", "forcestrutdepth", "onlynonbreakablespace", "wait", "writestatus", "writeline", "define", "defineexpandable", "redefine", "setmeasure", "setemeasure", "setgmeasure", "setxmeasure", "definemeasure", "freezemeasure", "measure", "measured", "directmeasure", "setquantity", "setequantity", "setgquantity", "setxquantity", "definequantity", "freezequantity", "quantity", "quantitied", "directquantity", "installcorenamespace", "getvalue", "getuvalue", "setvalue", "setevalue", "setgvalue", "setxvalue", "letvalue", "letgvalue", "resetvalue", "undefinevalue", "ignorevalue", "setuvalue", "setuevalue", "setugvalue", "setuxvalue", "globallet", "udef", "ugdef", "uedef", "uxdef", "checked", "unique", "getparameters", "geteparameters", "getgparameters", "getxparameters", "forgetparameters", "copyparameters", "getdummyparameters", "dummyparameter", "directdummyparameter", "setdummyparameter", "letdummyparameter", "setexpandeddummyparameter", "resetdummyparameter", "usedummystyleandcolor", "usedummystyleparameter", "usedummycolorparameter", "processcommalist", "processcommacommand", "quitcommalist", "quitprevcommalist", "processaction", "processallactions", "processfirstactioninset", "processallactionsinset", "unexpanded", "expanded", "startexpanded", "stopexpanded", "protect", "unprotect", "firstofoneargument", "firstoftwoarguments", "secondoftwoarguments", "firstofthreearguments", "secondofthreearguments", "thirdofth!
 reearguments", "firstoffourarguments", "secondoffourarguments", "thirdoffourarguments", "fourthoffourarguments", "firstoffivearguments", "secondoffivearguments", "thirdoffivearguments", "fourthoffivearguments", "fifthoffivearguments", "firstofsixarguments", "secondofsixarguments", "thirdofsixarguments", "fourthofsixarguments", "fifthofsixarguments", "sixthofsixarguments", "firstofoneunexpanded", "firstoftwounexpanded", "secondoftwounexpanded", "firstofthreeunexpanded", "secondofthreeunexpanded", "thirdofthreeunexpanded", "gobbleoneargument", "gobbletwoarguments", "gobblethreearguments", "gobblefourarguments", "gobblefivearguments", "gobblesixarguments", "gobblesevenarguments", "gobbleeightarguments", "gobbleninearguments", "gobbletenarguments", "gobbleoneoptional", "gobbletwooptionals", "gobblethreeoptionals", "gobblefouroptionals", "gobblefiveoptionals", "dorecurse", "doloop", "exitloop", "dostepwiserecurse", "recurselevel", "recursedepth", "dofastloopcs", "fastloopindex", "fastloopfinal", "dowith", "doloopovermatch", "doloopovermatched", "doloopoverlist", "newconstant", "setnewconstant", "setconstant", "setconstantvalue", "newconditional", "settrue", "setfalse", "settruevalue", "setfalsevalue", "setconditional", "newmacro", "setnewmacro", "newfraction", "newsignal", "newboundary", "dosingleempty", "dodoubleempty", "dotripleempty", "doquadrupleempty", "doquintupleempty", "dosixtupleempty", "doseventupleempty", "dosingleargument", "dodoubleargument", "dotripleargument", "doquadrupleargument", "doquintupleargument", "dosixtupleargument", "doseventupleargument", "dosinglegroupempty", "dodoublegroupempty", "dotriplegroupempty", "doquadruplegroupempty", "doquintuplegroupempty", "permitspacesbetweengroups", "dontpermitspacesbetweengroups", "nopdfcompression", "maximumpdfcompression", "normalpdfcompression", "onlypdfobjectcompression", "nopdfobjectcompression", "modulonumber", "dividenumber", "getfirstcharacter", "doifelsefirstchar", "doiffirstcharelse", "mathclassvalue", "startnointerference", "stopnointerference", "!
 twodigits", "threedigits", "leftorright", "offinterlineskip", "oninterlineskip", "nointerlineskip", "strut", "halfstrut", "quarterstrut", "depthstrut", "halflinestrut", "noheightstrut", "setstrut", "strutbox", "strutht", "strutdp", "strutwd", "struthtdp", "strutgap", "begstrut", "endstrut", "lineheight", "leftboundary", "rightboundary", "signalcharacter", "ascender", "descender", "capheight", "aligncontentleft", "aligncontentmiddle", "aligncontentright", "shiftbox", "vpackbox", "hpackbox", "vpackedbox", "hpackedbox", "normalreqno", "startimath", "stopimath", "normalstartimath", "normalstopimath", "startdmath", "stopdmath", "normalstartdmath", "normalstopdmath", "uncramped", "cramped", "mathstyletrigger", "triggermathstyle", "triggeredmathstyle", "mathstylefont", "mathsmallstylefont", "mathstyleface", "mathsmallstyleface", "mathstylecommand", "mathpalette", "mathstylehbox", "mathstylevbox", "mathstylevcenter", "mathstylevcenteredhbox", "mathstylevcenteredvbox", "mathtext", "setmathsmalltextbox", "setmathtextbox", "pushmathstyle", "popmathstyle", "triggerdisplaystyle", "triggertextstyle", "triggerscriptstyle", "triggerscriptscriptstyle", "triggeruncrampedstyle", "triggercrampedstyle", "triggersmallstyle", "triggeruncrampedsmallstyle", "triggercrampedsmallstyle", "triggerbigstyle", "triggeruncrampedbigstyle", "triggercrampedbigstyle", "luaexpr", "expelsedoif", "expdoif", "expdoifnot", "expdoifelsecommon", "expdoifcommonelse", "expdoifelseinset", "expdoifinsetelse", "glyphscaled", "ctxdirectlua", "ctxlatelua", "ctxsprint", "ctxwrite", "ctxcommand", "ctxdirectcommand", "ctxlatecommand", "ctxreport", "ctxlua", "luacode", "lateluacode", "directluacode", "registerctxluafile", "ctxloadluafile", "luaversion", "luamajorversion", "luaminorversion", "ctxluacode", "luaconditional", "luaexpanded", "ctxluamatch", "ctxluamatchfile", "startluaparameterset", "stopluaparameterset", "luaparameterset", "definenamedlua", "obeylualines", "obeyluatokens", "startluacode", "stopluacode", "startlua", "stoplua", "startctxfunction", "stopctx!
 function", "ctxfunction", "startctxfunctiondefinition", "stopctxfunctiondefinition", "installctxfunction", "installprotectedctxfunction", "installprotectedctxscanner", "installctxscanner", "resetctxscanner", "cldprocessfile", "cldloadfile", "cldloadviafile", "cldcontext", "cldcommand", "carryoverpar", "freezeparagraphproperties", "defrostparagraphproperties", "setparagraphfreezing", "forgetparagraphfreezing", "updateparagraphproperties", "updateparagraphpenalties", "updateparagraphdemerits", "updateparagraphshapes", "updateparagraphlines", "updateparagraphpasses", "lastlinewidth", "assumelongusagecs", "righttolefthbox", "lefttorighthbox", "righttoleftvbox", "lefttorightvbox", "righttoleftvtop", "lefttorightvtop", "rtlhbox", "ltrhbox", "rtlvbox", "ltrvbox", "rtlvtop", "ltrvtop", "autodirhbox", "autodirvbox", "autodirvtop", "leftorrighthbox", "leftorrightvbox", "leftorrightvtop", "lefttoright", "righttoleft", "checkedlefttoright", "checkedrighttoleft", "synchronizelayoutdirection", "synchronizedisplaydirection", "synchronizeinlinedirection", "dirlre", "dirrle", "dirlro", "dirrlo", "rtltext", "ltrtext", "lesshyphens", "morehyphens", "nohyphens", "dohyphens", "dohyphencollapsing", "nohyphencollapsing", "compounddiscretionary", "Ucheckedstartdisplaymath", "Ucheckedstopdisplaymath", "break", "nobreak", "allowbreak", "goodbreak", "nospace", "nospacing", "dospacing", "naturalhbox", "naturalvbox", "naturalvtop", "naturalhpack", "naturalvpack", "naturaltpack", "reversehbox", "reversevbox", "reversevtop", "reversehpack", "reversevpack", "reversetpack", "hcontainer", "vcontainer", "tcontainer", "frule", "compoundhyphenpenalty", "start", "stop", "unsupportedcs", "openout", "closeout", "write", "openin", "closein", "read", "readline", "readlinedirect", "readfromterminal", "boxlines", "boxline", "setboxline", "copyboxline", "boxlinewd", "boxlineht", "boxlinedp", "boxlinenw", "boxlinenh", "boxlinend", "boxlinels", "boxliners", "boxlinelh", "boxlinerh", "boxlinelp", "boxlinerp", "boxlinein", "boxrangewd", "boxrangeht", "boxrange!
 dp", "bitwiseset", "bitwiseand", "bitwiseor", "bitwisexor", "bitwisenot", "bitwisenil", "ifbitwiseand", "bitwise", "bitwiseshift", "bitwiseflip", "textdir", "linedir", "pardir", "boxdir", "prelistbox", "postlistbox", "prelistcopy", "postlistcopy", "setprelistbox", "setpostlistbox", "noligaturing", "nokerning", "noexpansion", "noprotrusion", "noleftkerning", "noleftligaturing", "norightkerning", "norightligaturing", "noitaliccorrection", "futureletnexttoken", "defbackslashbreak", "letbackslashbreak", "pushoverloadmode", "popoverloadmode", "pushrunstate", "poprunstate", "suggestedalias", "showboxhere", "discoptioncodestring", "flagcodestring", "frozenparcodestring", "glyphoptioncodestring", "groupcodestring", "hyphenationcodestring", "mathcontrolcodestring", "mathflattencodestring", "normalizecodestring", "parcontextcodestring", "newlocalcount", "newlocaldimen", "newlocalskip", "newlocalmuskip", "newlocaltoks", "newlocalbox", "newlocalwrite", "newlocalread", "setnewlocalcount", "setnewlocaldimen", "setnewlocalskip", "setnewlocalmuskip", "setnewlocaltoks", "setnewlocalbox", "ifexpression", "localcontrolledrepeating", "expandedrepeating", "unexpandedrepeating", "lastchkinteger", "ifchkinteger", "mathordinary", "mathoperator", "mathbinary", "mathrelation", "mathpunctuation", "mathfraction", "mathradical", "mathmiddle", "mathaccent", "mathfenced", "mathghost", "mathvariable", "mathactive", "mathvcenter", "mathimaginary", "mathdifferential", "mathexponential", "mathdigit", "mathdivision", "mathfactorial", "mathwrapped", "mathconstruct", "mathdimension", "mathunary", "mathchemicalbond", "mathimplication", "filebasename", "filenameonly", "filedirname", "filesuffix", "setmathoption", "resetmathoption", "Ustack", "Umathdict", "Umathclass", "Ustyle", "Uchar", "Usuperscript", "Usubscript", "Unosuperscript", "Unosubscript", "Uprimescript", "Usuperprescript", "Usubprescript", "Unosuperprescript", "Unosubprescript", "ignorefile", "boxwidth", "boxheight", "boxdepth" },
+ ["constants"]={ "zerocount", "minusone", "minustwo", "plusone", "plustwo", "plusthree", "plusfour", "plusfive", "plussix", "plusseven", "pluseight", "plusnine", "plusten", "pluseleven", "plustwelve", "plusthirteen", "plusfourteen", "plusfifteen", "plussixteen", "plusfifty", "plushundred", "plusonehundred", "plustwohundred", "plusfivehundred", "plusonehundredtwentyfive", "plustwohundredfifty", "plusthousand", "plustenthousand", "plustwentythousand", "medcard", "maxcard", "maxcardminusone", "maxiterator", "plusonethousand", "plustwothousand", "plusthreethousand", "plusfourthousand", "plusfivethousand", "plussixthousand", "plusseventhousand", "pluseightthousand", "plusninethousand", "plusfifteenhundred", "plustwentyfivehundred", "plusfortyfivehundred", "plusseventyfivehundred", "plusninetynine", "plusfourtytwo", "plustwentyfive", "zeropoint", "onepoint", "halfapoint", "onebasepoint", "maxcount", "maxdimen", "scaledpoint", "thousandpoint", "points", "halfpoint", "twopoints", "threepoints", "zeroskip", "centeringskip", "stretchingskip", "shrinkingskip", "centeringfillskip", "stretchingfillskip", "shrinkingfillskip", "centeringfilllskip", "stretchingfilllskip", "shrinkingfilllskip", "zeromuskip", "onemuskip", "pluscxxvii", "pluscxxviii", "pluscclv", "pluscclvi", "normalpagebox", "delayedpagebox", "binaryshiftedten", "binaryshiftedtwenty", "binaryshiftedthirty", "thickermuskip", "continuationmuskip", "fencemuskip", "mathinterwordmuskip", "zerofloat", "directionlefttoright", "directionrighttoleft", "endoflinetoken", "outputnewlinechar", "emptytoks", "empty", "undefined", "blankspace", "relaxedspace", "prerollrun", "voidbox", "emptybox", "emptyvbox", "emptyhbox", "bigskipamount", "medskipamount", "smallskipamount", "fmtname", "fmtversion", "texengine", "texenginename", "texengineversion", "texenginefunctionality", "luatexengine", "pdftexengine", "xetexengine", "unknownengine", "contextformat", "contextversion", "contextlmtxmode", "contextmark", "mksuffix", "activecatcode", "bgroup", "egroup", "endline", "condit!
 ionaltrue", "conditionalfalse", "attributeunsetvalue", "statuswrite", "uprotationangle", "rightrotationangle", "downrotationangle", "leftrotationangle", "inicatcodes", "ctxcatcodes", "texcatcodes", "notcatcodes", "txtcatcodes", "vrbcatcodes", "prtcatcodes", "nilcatcodes", "luacatcodes", "tpacatcodes", "tpbcatcodes", "xmlcatcodes", "ctdcatcodes", "rlncatcodes", "escapecatcode", "begingroupcatcode", "endgroupcatcode", "mathshiftcatcode", "alignmentcatcode", "endoflinecatcode", "parametercatcode", "superscriptcatcode", "subscriptcatcode", "ignorecatcode", "spacecatcode", "lettercatcode", "othercatcode", "activecatcode", "commentcatcode", "invalidcatcode", "tabasciicode", "newlineasciicode", "formfeedasciicode", "endoflineasciicode", "endoffileasciicode", "commaasciicode", "spaceasciicode", "periodasciicode", "hashasciicode", "dollarasciicode", "commentasciicode", "ampersandasciicode", "colonasciicode", "semicolonasciicode", "backslashasciicode", "circumflexasciicode", "underscoreasciicode", "leftbraceasciicode", "barasciicode", "rightbraceasciicode", "tildeasciicode", "delasciicode", "leftparentasciicode", "rightparentasciicode", "lessthanasciicode", "morethanasciicode", "doublecommentsignal", "atsignasciicode", "exclamationmarkasciicode", "questionmarkasciicode", "doublequoteasciicode", "singlequoteasciicode", "forwardslashasciicode", "primeasciicode", "hyphenasciicode", "percentasciicode", "leftbracketasciicode", "rightbracketasciicode", "zeroasciicode", "nineasciicode", "alowercaseasciicode", "zlowercaseasciicode", "hsizefrozenparcode", "skipfrozenparcode", "hangfrozenparcode", "indentfrozenparcode", "parfillfrozenparcode", "adjustfrozenparcode", "protrudefrozenparcode", "tolerancefrozenparcode", "stretchfrozenparcode", "loosenessfrozenparcode", "lastlinefrozenparcode", "linepenaltyfrozenparcode", "clubpenaltyfrozenparcode", "widowpenaltyfrozenparcode", "displaypenaltyfrozenparcode", "brokenpenaltyfrozenparcode", "demeritsfrozenparcode", "shapefrozenparcode", "linefrozenparcode", "hyphenationfrozenparcode", "sha!
 pingpenaltyfrozenparcode", "orphanpenaltyfrozenparcode", "toddlerpenaltyfrozenparcode", "emergencyfrozenparcode", "parpassesfrozenparcode", "singlelinepenaltyfrozenparcode", "hyphenpenaltyfrozenparcode", "exhyphenpenaltyfrozenparcode", "linebreakchecksfrozenparcode", "twindemeritsfrozenparcode", "fitnessclassesfrozenparcode", "allfrozenparcode", "activemathcharcode", "activetabtoken", "activeformfeedtoken", "activeendoflinetoken", "batchmodecode", "nonstopmodecode", "scrollmodecode", "errorstopmodecode", "bottomlevelgroupcode", "simplegroupcode", "hboxgroupcode", "adjustedhboxgroupcode", "vboxgroupcode", "vtopgroupcode", "aligngroupcode", "noaligngroupcode", "outputgroupcode", "mathgroupcode", "discretionarygroupcode", "insertgroupcode", "vadjustgroupcode", "vcentergroupcode", "mathabovegroupcode", "mathchoicegroupcode", "alsosimplegroupcode", "semisimplegroupcode", "mathshiftgroupcode", "mathleftgroupcode", "localboxgroupcode", "splitoffgroupcode", "splitkeepgroupcode", "preamblegroupcode", "alignsetgroupcode", "finrowgroupcode", "discretionarygroupcode", "markautomigrationcode", "insertautomigrationcode", "adjustautomigrationcode", "preautomigrationcode", "postautomigrationcode", "charnodecode", "hlistnodecode", "vlistnodecode", "rulenodecode", "insertnodecode", "marknodecode", "adjustnodecode", "ligaturenodecode", "discretionarynodecode", "whatsitnodecode", "mathnodecode", "gluenodecode", "kernnodecode", "penaltynodecode", "unsetnodecode", "mathsnodecode", "overrulemathcontrolcode", "underrulemathcontrolcode", "radicalrulemathcontrolcode", "fractionrulemathcontrolcode", "accentskewhalfmathcontrolcode", "accentskewapplymathcontrolcode", "applyordinarykernpairmathcontrolcode", "applyverticalitalickernmathcontrolcode", "applyordinaryitalickernmathcontrolcode", "applycharitalickernmathcontrolcode", "reboxcharitalickernmathcontrolcode", "applyboxeditalickernmathcontrolcode", "staircasekernmathcontrolcode", "applytextitalickernmathcontrolcode", "applyscriptitalickernmathcontrolcode", "checkspaceitalickernmathcontro!
 lcode", "checktextitalickernmathcontrolcode", "analyzescriptnucleuscharmathcontrolcode", "analyzescriptnucleuslistmathcontrolcode", "analyzescriptnucleusboxmathcontrolcode", "accenttopskewwithoffsetmathcontrolcode", "ignorekerndimensionsmathcontrolcode", "ignoreflataccentsmathcontrolcode", "extendaccentsmathcontrolcode", "extenddelimitersmathcontrolcode", "normalparcontextcode", "vmodeparcontextcode", "vboxparcontextcode", "vtopparcontextcode", "vcenterparcontextcode", "vadjustparcontextcode", "insertparcontextcode", "outputparcontextcode", "alignparcontextcode", "noalignparcontextcode", "spanparcontextcode", "resetparcontextcode", "normalparbegincode", "forceparbegincode", "indentparbegincode", "noindentparbegincode", "mathcharparbegincode", "charparbegincode", "boundaryparbegincode", "spaceparbegincode", "mathparbegincode", "kernparbegincode", "hskipparbegincode", "unhboxparbegincode", "valignparbegincode", "vruleparbegincode", "fixedsuperorsubscriptsmodecode", "fixedsuperandsubscriptsmodecode", "ignoreemptyscriptsmodecode", "ignoreemptysuperscriptsmodecode", "ignoreemptysubscriptsmodecode", "ignoreemptyprimescriptsmodecode", "inheritclassdoublescriptmodecode", "discardshapekerndoublescriptmodecode", "realignscriptsdoublescriptmodecode", "reorderprescriptsdoublescriptmodecode", "leftoriginlistanchorcode", "leftheightlistanchorcode", "leftdepthlistanchorcode", "rightoriginlistanchorcode", "rightheightlistanchorcode", "rightdepthlistanchorcode", "centeroriginlistanchorcode", "centerheightlistanchorcode", "centerdepthlistanchorcode", "halfwaytotallistanchorcode", "halfwayheightlistanchorcode", "halfwaydepthlistanchorcode", "halfwayleftlistanchorcode", "halfwayrightlistanchorcode", "underfullbadnessmodecode", "loosebadnessmodecode", "tightbadnessmodecode", "overfullbadnessmodecode", "negatexlistsigncode", "negateylistsigncode", "negatelistsigncode", "fontslantperpoint", "fontinterwordspace", "fontinterwordstretch", "fontinterwordshrink", "fontexheight", "fontemwidth", "fontextraspace", "slantperpoint", "mathexheig!
 ht", "mathemwidth", "interwordspace", "interwordstretch", "interwordshrink", "exheight", "emwidth", "extraspace", "mathaxisheight", "muquad", "startmode", "stopmode", "startnotmode", "stopnotmode", "startmodeset", "stopmodeset", "doifmode", "doifelsemode", "doifmodeelse", "doifnotmode", "startmodeset", "stopmodeset", "startallmodes", "stopallmodes", "startnotallmodes", "stopnotallmodes", "doifallmodes", "doifelseallmodes", "doifallmodeselse", "doifnotallmodes", "startenvironment", "stopenvironment", "environment", "startcomponent", "stopcomponent", "component", "startlocalcomponent", "stoplocalcomponent", "startproduct", "stopproduct", "product", "startproject", "stopproject", "project", "starttext", "stoptext", "startnotext", "stopnotext", "startdocument", "stopdocument", "documentvariable", "unexpandeddocumentvariable", "setupdocument", "presetdocument", "doifelsedocumentvariable", "doifdocumentvariableelse", "doifdocumentvariable", "doifnotdocumentvariable", "startmodule", "stopmodule", "usemodule", "usetexmodule", "useluamodule", "setupmodule", "currentmoduleparameter", "moduleparameter", "everystarttext", "everystoptext", "everyforgetall", "luaenvironment", "startTEXpage", "stopTEXpage", "enablemode", "disablemode", "preventmode", "definemode", "globalenablemode", "globaldisablemode", "globalpreventmode", "pushmode", "popmode", "typescriptone", "typescripttwo", "typescriptthree", "mathsizesuffix", "mathordinarycode", "mathordcode", "mathoperatorcode", "mathopcode", "mathbinarycode", "mathbincode", "mathrelationcode", "mathrelcode", "mathopencode", "mathclosecode", "mathpunctuationcode", "mathpunctcode", "mathovercode", "mathundercode", "mathinnercode", "mathradicalcode", "mathfractioncode", "mathmiddlecode", "mathprimecode", "mathaccentcode", "mathfencedcode", "mathghostcode", "mathvariablecode", "mathactivecode", "mathvcentercode", "mathconstructcode", "mathwrappedcode", "mathbegincode", "mathendcode", "mathexplicitcode", "mathdivisioncode", "mathfactorialcode", "mathdimensioncode", "mathexperimentalcode",!
  "mathtextpunctuationcode", "mathcontinuationcode", "mathimaginarycode", "mathdifferentialcode", "mathexponentialcode", "mathintegralcode", "mathellipsiscode", "mathfunctioncode", "mathdigitcode", "mathalphacode", "mathboxcode", "mathchoicecode", "mathnothingcode", "mathlimopcode", "mathnolopcode", "mathunsetcode", "mathunspacedcode", "mathallcode", "mathfakecode", "mathunarycode", "mathmaybeordinarycode", "mathmayberelationcode", "mathmaybebinarycode", "mathnumbergroupcode", "mathchemicalbondcode", "mathimplicationcode", "mathnormalstylepreset", "mathcrampedstylepreset", "mathsubscriptstylepreset", "mathsuperscriptstylepreset", "mathsmallstylepreset", "mathsmallerstylepreset", "mathnumeratorstylepreset", "mathdenominatorstylepreset", "mathdoublesuperscriptstylepreset", "constantnumber", "constantnumberargument", "constantdimen", "constantdimenargument", "constantemptyargument", "periodicshrink", "luastringsep", "!!bs", "!!es", "lefttorightmark", "righttoleftmark", "lrm", "rlm", "bidilre", "bidirle", "bidipop", "bidilro", "bidirlo", "breakablethinspace", "nobreakspace", "nonbreakablespace", "narrownobreakspace", "zerowidthnobreakspace", "ideographicspace", "ideographichalffillspace", "twoperemspace", "threeperemspace", "fourperemspace", "fiveperemspace", "sixperemspace", "figurespace", "punctuationspace", "hairspace", "enquad", "emquad", "zerowidthspace", "zerowidthnonjoiner", "zerowidthjoiner", "zwnj", "zwj", "optionalspace", "asciispacechar", "softhyphen", "autoinsertedspace", "Ux", "eUx", "mathstylevariantidentity", "mathstylevariantcramped", "mathstylevariantuncramped", "startlmtxmode", "stoplmtxmode", "startmkivmode", "stopmkivmode", "wildcardsymbol", "normalhyphenationcode", "automatichyphenationcode", "explicithyphenationcode", "syllablehyphenationcode", "uppercasehyphenationcode", "collapsehyphenationcode", "compoundhyphenationcode", "strictstarthyphenationcode", "strictendhyphenationcode", "automaticpenaltyhyphenationcode", "explicitpenaltyhyphenationcode", "permitgluehyphenationcode", "permitallhyphena!
 tioncode", "permitmathreplacehyphenationcode", "forcecheckhyphenationcode", "lazyligatureshyphenationcode", "forcehandlerhyphenationcode", "feedbackcompoundhyphenationcode", "ignoreboundshyphenationcode", "partialhyphenationcode", "completehyphenationcode", "replaceapostrophehyphenationcode", "normalizelinenormalizecode", "parindentskipnormalizecode", "swaphangindentnormalizecode", "swapparsshapenormalizecode", "breakafterdirnormalizecode", "removemarginkernsnormalizecode", "clipwidthnormalizecode", "flattendiscretionariesnormalizecode", "discardzerotabskipsnormalizecode", "flattenhleadersnormalizecode", "balanceinlinemathnormalizecode", "normalizeparnormalizeparcode", "flattenvleadersnormalizeparcode", "limitprevgrafnormalizeparcode", "keepinterlinepenaltiesnormalizeparcode", "removetrailingspacesnormalizeparcode", "nopreslackclassoptioncode", "nopostslackclassoptioncode", "lefttopkernclassoptioncode", "righttopkernclassoptioncode", "leftbottomkernclassoptioncode", "rightbottomkernclassoptioncode", "lookaheadforendclassoptioncode", "noitaliccorrectionclassoptioncode", "defaultmathclassoptions", "checkligatureclassoptioncode", "checkitaliccorrectionclassoptioncode", "checkkernpairclassoptioncode", "flattenclassoptioncode", "omitpenaltyclassoptioncode", "unpackclassoptioncode", "raiseprimeclassoptioncode", "carryoverlefttopkernclassoptioncode", "carryoverleftbottomkernclassoptioncode", "carryoverrighttopkernclassoptioncode", "carryoverrightbottomkernclassoptioncode", "preferdelimiterdimensionsclassoptioncode", "autoinjectclassoptioncode", "removeitaliccorrectionclassoptioncode", "operatoritaliccorrectionclassoptioncode", "shortinlineclassoptioncode", "pushnestingclassoptioncode", "popnestingclassoptioncode", "obeynestingclassoptioncode", "noitaliccorrectionglyphoptioncode", "nozeroitaliccorrectionglyphoptioncode", "noexpansionglyphoptioncode", "noprotrusionglyphoptioncode", "noleftkernglyphoptioncode", "norightkernglyphoptioncode", "noleftligatureglyphoptioncode", "norightligatureglyphoptioncode", "textcheckitali!
 cglyphoptioncode", "mathcheckitalicglyphoptioncode", "weightlessglyphoptioncode", "spacefactoroverloadglyphoptioncode", "checktoddlerglyphoptioncode", "checktwinglyphoptioncode", "ignoretwincharactercontrolcode", "repeatspecificationoptioncode", "doublespecificationoptioncode", "largestspecificationoptioncode", "presetsspecificationoptioncode", "integerspecificationoptioncode", "finalspecificationoptioncode", "defaultspecificationoptioncode", "ignorespecificationoptioncode", "rotatespecificationoptioncode", "nokerningcode", "noligaturingcode", "noitalicscode", "allparpassclasses", "indecentparpassclasses", "looseparpassclasses", "tightparpassclasses", "almostdecentparpassclasses", "verylooseparpassclass", "looseparpassclass", "almostlooseparpassclass", "barelylooseparpassclass", "decentparpassclass", "verytightparpassclass", "tightparpassclass", "almosttightparpassclass", "barelytightparpassclass", "frozenflagcode", "tolerantflagcode", "protectedflagcode", "primitiveflagcode", "permanentflagcode", "noalignedflagcode", "immutableflagcode", "mutableflagcode", "globalflagcode", "overloadedflagcode", "immediateflagcode", "conditionalflagcode", "valueflagcode", "instanceflagcode", "ordmathflattencode", "binmathflattencode", "relmathflattencode", "punctmathflattencode", "innermathflattencode", "normalworddiscoptioncode", "preworddiscoptioncode", "postworddiscoptioncode", "preferbreakdiscoptioncode", "prefernobreakdiscoptioncode", "noitaliccorrectiondiscoptioncode", "nozeroitaliccorrectiondiscoptioncode", "textcheckitalicdiscoptioncode", "ignoreprevdepthmvloptioncode", "noprevdepthmvloptioncode", "discardtopmvloptioncode", "discardbottommvloptioncode", "continueifinputfile", "continuewhenlmtxmode", "continuewhenmkivmode", "uunit", "defaultdisplaywidowpenalty", "defaultwidowpenalty", "defaultclubpenalty", "defaultbrokenpenalty", "defaultgriddisplaywidowpenalty", "defaultgridwidowpenalty", "defaultgridclubpenalty", "defaultgridbrokenpenalty", "luametatexverboseversion", "luametatexfunctionality" },
+ ["helpers"]={ "pushglobalsetups", "popglobalsetups", "startsetups", "stopsetups", "startxmlsetups", "stopxmlsetups", "startluasetups", "stopluasetups", "starttexsetups", "stoptexsetups", "startrawsetups", "stoprawsetups", "startlocalsetups", "stoplocalsetups", "starttexdefinition", "stoptexdefinition", "starttexcode", "stoptexcode", "startcontextcode", "stopcontextcode", "startcontextdefinitioncode", "stopcontextdefinitioncode", "texdefinition", "doifelsesetups", "doifsetupselse", "doifsetups", "doifnotsetups", "setup", "setups", "texsetup", "xmlsetup", "luasetup", "directsetup", "fastsetup", "copysetups", "resetsetups", "doifelsecommandhandler", "doifcommandhandlerelse", "doifnotcommandhandler", "doifcommandhandler", "newmode", "setmode", "resetmode", "newsystemmode", "setsystemmode", "resetsystemmode", "pushsystemmode", "popsystemmode", "globalsetmode", "globalresetmode", "globalsetsystemmode", "globalresetsystemmode", "booleanmodevalue", "newcount", "newdimen", "newskip", "newmuskip", "newbox", "newtoks", "newread", "newwrite", "newmarks", "newinsert", "newattribute", "newif", "newfloat", "newmvl", "newlanguage", "newfamily", "newfam", "newhelp", "newuserunit", "newinteger", "newdimension", "newgluespec", "newmugluespec", "newposit", "aliasinteger", "aliasdimension", "aliasposit", "then", "begcsname", "autorule", "tobit", "tobits", "tohexa", "strippedcsname", "checkedstrippedcsname", "nofarguments", "firstargumentfalse", "firstargumenttrue", "secondargumentfalse", "secondargumenttrue", "thirdargumentfalse", "thirdargumenttrue", "fourthargumentfalse", "fourthargumenttrue", "fifthargumentfalse", "fifthargumenttrue", "sixthargumentfalse", "sixthargumenttrue", "seventhargumentfalse", "seventhargumenttrue", "doglobal", "dodoglobal", "redoglobal", "resetglobal", "donothing", "untraceddonothing", "dontcomplain", "moreboxtracing", "lessboxtracing", "noboxtracing", "forgetall", "donetrue", "donefalse", "foundtrue", "foundfalse", "globaldonetrue", "globaldonefalse", "globalfoundtrue", "globalfoundfalse", "inl!
 ineordisplaymath", "indisplaymath", "forcedisplaymath", "startforceddisplaymath", "stopforceddisplaymath", "startpickupmath", "stoppickupmath", "reqno", "forceinlinemath", "mathortext", "thebox", "htdp", "unvoidbox", "hfilll", "vfilll", "mathbox", "mathlimop", "mathnolop", "mathnothing", "mathalpha", "currentcatcodetable", "defaultcatcodetable", "catcodetablename", "newcatcodetable", "startcatcodetable", "stopcatcodetable", "startextendcatcodetable", "stopextendcatcodetable", "pushcatcodetable", "popcatcodetable", "restorecatcodes", "setcatcodetable", "letcatcodecommand", "defcatcodecommand", "uedcatcodecommand", "hglue", "vglue", "hfillneg", "vfillneg", "hfilllneg", "vfilllneg", "hsplit", "ruledhss", "ruledhfil", "ruledhfill", "ruledhfilll", "ruledhfilneg", "ruledhfillneg", "normalhfillneg", "normalhfilllneg", "ruledvss", "ruledvfil", "ruledvfill", "ruledvfilll", "ruledvfilneg", "ruledvfillneg", "normalvfillneg", "normalvfilllneg", "ruledhbox", "ruledvbox", "ruledvtop", "ruleddbox", "ruledvcenter", "ruledmbox", "ruledhpack", "ruledvpack", "ruledtpack", "ruleddpack", "ruledvsplit", "ruledtsplit", "ruleddsplit", "ruledhskip", "ruledvskip", "ruledkern", "ruledmskip", "ruledmkern", "ruledhglue", "ruledvglue", "normalhglue", "normalvglue", "ruledpenalty", "filledhboxb", "filledhboxr", "filledhboxg", "filledhboxc", "filledhboxm", "filledhboxy", "filledhboxk", "scratchstring", "scratchstringone", "scratchstringtwo", "tempstring", "scratchcounter", "globalscratchcounter", "privatescratchcounter", "scratchfloat", "globalscratchfloat", "privatescratchfloat", "scratchdimen", "globalscratchdimen", "privatescratchdimen", "scratchskip", "globalscratchskip", "privatescratchskip", "scratchmuskip", "globalscratchmuskip", "privatescratchmuskip", "scratchtoks", "globalscratchtoks", "privatescratchtoks", "scratchbox", "globalscratchbox", "privatescratchbox", "scratchmacro", "scratchmacroone", "scratchmacrotwo", "scratchconditiontrue", "scratchconditionfalse", "ifscratchcondition", "scratchconditiononetrue", "scratchconditiononefal!
 se", "ifscratchconditionone", "scratchconditiontwotrue", "scratchconditiontwofalse", "ifscratchconditiontwo", "globalscratchcounterone", "globalscratchcountertwo", "globalscratchcounterthree", "groupedcommand", "groupedcommandcs", "triggergroupedcommand", "triggergroupedcommandcs", "simplegroupedcommand", "simplegroupedcommandcs", "pickupgroupedcommand", "pickupgroupedcommandcs", "mathgroupedcommandcs", "usedbaselineskip", "usedlineskip", "usedlineskiplimit", "availablehsize", "localhsize", "setlocalhsize", "distributedhsize", "hsizefraction", "next", "nexttoken", "nextbox", "dowithnextbox", "dowithnextboxcs", "dowithnextboxcontent", "dowithnextboxcontentcs", "flushnextbox", "boxisempty", "boxtostring", "contentostring", "prerolltostring", "givenwidth", "givenheight", "givendepth", "scangivendimensions", "scratchwidth", "scratchheight", "scratchdepth", "scratchoffset", "scratchdistance", "scratchtotal", "scratchitalic", "scratchhsize", "scratchvsize", "scratchclass", "scratchxoffset", "scratchyoffset", "scratchhoffset", "scratchvoffset", "scratchxposition", "scratchyposition", "scratchtopoffset", "scratchbottomoffset", "scratchleftoffset", "scratchrightoffset", "scratchcounterone", "scratchcountertwo", "scratchcounterthree", "scratchcounterfour", "scratchcounterfive", "scratchcountersix", "scratchfloatone", "scratchfloattwo", "scratchfloatthree", "scratchfloatfour", "scratchfloatfive", "scratchfloatsix", "scratchdimenone", "scratchdimentwo", "scratchdimenthree", "scratchdimenfour", "scratchdimenfive", "scratchdimensix", "scratchskipone", "scratchskiptwo", "scratchskipthree", "scratchskipfour", "scratchskipfive", "scratchskipsix", "scratchmuskipone", "scratchmuskiptwo", "scratchmuskipthree", "scratchmuskipfour", "scratchmuskipfive", "scratchmuskipsix", "scratchtoksone", "scratchtokstwo", "scratchtoksthree", "scratchtoksfour", "scratchtoksfive", "scratchtokssix", "scratchboxone", "scratchboxtwo", "scratchboxthree", "scratchboxfour", "scratchboxfive", "scratchboxsix", "scratchnx", "scratchny", "scratchmx", "scratch!
 my", "scratchsx", "scratchsy", "scratchunicode", "scratchunicodeone", "scratchunicodetwo", "scratchunicodethree", "scratchmin", "scratchmax", "scratchread", "scratchwrite", "pfsin", "pfcos", "pftan", "pfasin", "pfacos", "pfatan", "pfsinh", "pfcosh", "pftanh", "pfasinh", "pfacosh", "pfatanh", "pfsqrt", "pflog", "pfexp", "pfceil", "pffloor", "pfround", "pfabs", "pfrad", "pfdeg", "pfatantwo", "pfpow", "pfmod", "pfrem", "scratchleftskip", "scratchrightskip", "scratchtopskip", "scratchbottomskip", "doif", "doifnot", "doifelse", "firstinset", "doifinset", "doifnotinset", "doifelseinset", "doifinsetelse", "doifelsenextchar", "doifnextcharelse", "doifelsenextcharcs", "doifnextcharcselse", "doifelsenextoptional", "doifnextoptionalelse", "doifelsenextoptionalcs", "doifnextoptionalcselse", "doifelsefastoptionalcheck", "doiffastoptionalcheckelse", "doifelsefastoptionalcheckcs", "doiffastoptionalcheckcselse", "doifelsenextbgroup", "doifnextbgroupelse", "doifelsenextbgroupcs", "doifnextbgroupcselse", "doifelsenextparenthesis", "doifnextparenthesiselse", "doifelseundefined", "doifundefinedelse", "doifelsedefined", "doifdefinedelse", "doifundefined", "doifdefined", "doifelsevalue", "doifvalue", "doifnotvalue", "doifnothing", "doifsomething", "doifelsenothing", "doifnothingelse", "doifelsesomething", "doifsomethingelse", "doifvaluenothing", "doifvaluesomething", "doifelsevaluenothing", "doifvaluenothingelse", "doifelsedimension", "doifdimensionelse", "doifelsenumber", "doifnumberelse", "doifnumber", "doifnotnumber", "doifelsecommon", "doifcommonelse", "doifcommon", "doifnotcommon", "doifinstring", "doifnotinstring", "doifelseinstring", "doifinstringelse", "doifelseassignment", "doifassignmentelse", "docheckassignment", "doifelseassignmentcs", "doifassignmentelsecs", "validassignment", "novalidassignment", "doiftext", "doifelsetext", "doiftextelse", "doifnottext", "validtext", "quitcondition", "truecondition", "falsecondition", "tracingall", "tracingnone", "loggingall", "tracingcatcodes", "showluatokens", "aliasmacro", "removetok!
 s", "appendtoks", "prependtoks", "appendtotoks", "prependtotoks", "to", "endgraf", "endpar", "reseteverypar", "finishpar", "null", "space", "quad", "enspace", "emspace", "charspace", "nbsp", "crlf", "obeyspaces", "obeylines", "obeytabs", "obeypages", "obeyedspace", "obeyedline", "obeyedtab", "obeyedpage", "normalspace", "naturalspace", "controlspace", "normalspaces", "ignoretabs", "ignorelines", "ignorepages", "ignoreeofs", "setcontrolspaces", "executeifdefined", "singleexpandafter", "doubleexpandafter", "tripleexpandafter", "dontleavehmode", "removelastspace", "removeunwantedspaces", "keepunwantedspaces", "removepunctuation", "ignoreparskip", "forcestrutdepth", "onlynonbreakablespace", "wait", "writestatus", "writeline", "define", "defineexpandable", "redefine", "setmeasure", "setemeasure", "setgmeasure", "setxmeasure", "definemeasure", "freezemeasure", "measure", "measured", "directmeasure", "setquantity", "setequantity", "setgquantity", "setxquantity", "definequantity", "freezequantity", "quantity", "quantitied", "directquantity", "installcorenamespace", "getvalue", "getuvalue", "setvalue", "setevalue", "setgvalue", "setxvalue", "letvalue", "letgvalue", "resetvalue", "undefinevalue", "ignorevalue", "setuvalue", "setuevalue", "setugvalue", "setuxvalue", "globallet", "udef", "ugdef", "uedef", "uxdef", "checked", "unique", "getparameters", "geteparameters", "getgparameters", "getxparameters", "forgetparameters", "copyparameters", "getdummyparameters", "dummyparameter", "directdummyparameter", "setdummyparameter", "letdummyparameter", "setexpandeddummyparameter", "resetdummyparameter", "usedummystyleandcolor", "usedummystyleparameter", "usedummycolorparameter", "processcommalist", "processcommacommand", "quitcommalist", "quitprevcommalist", "processaction", "processallactions", "processfirstactioninset", "processallactionsinset", "unexpanded", "expanded", "startexpanded", "stopexpanded", "protect", "unprotect", "firstofoneargument", "firstoftwoarguments", "secondoftwoarguments", "firstofthreearguments", "secondof!
 threearguments", "thirdofthreearguments", "firstoffourarguments", "secondoffourarguments", "thirdoffourarguments", "fourthoffourarguments", "firstoffivearguments", "secondoffivearguments", "thirdoffivearguments", "fourthoffivearguments", "fifthoffivearguments", "firstofsixarguments", "secondofsixarguments", "thirdofsixarguments", "fourthofsixarguments", "fifthofsixarguments", "sixthofsixarguments", "firstofoneunexpanded", "firstoftwounexpanded", "secondoftwounexpanded", "firstofthreeunexpanded", "secondofthreeunexpanded", "thirdofthreeunexpanded", "gobbleoneargument", "gobbletwoarguments", "gobblethreearguments", "gobblefourarguments", "gobblefivearguments", "gobblesixarguments", "gobblesevenarguments", "gobbleeightarguments", "gobbleninearguments", "gobbletenarguments", "gobbleoneoptional", "gobbletwooptionals", "gobblethreeoptionals", "gobblefouroptionals", "gobblefiveoptionals", "dorecurse", "doloop", "exitloop", "dostepwiserecurse", "recurselevel", "recursedepth", "dofastloopcs", "fastloopindex", "fastloopfinal", "dowith", "doloopovermatch", "doloopovermatched", "doloopoverlist", "newconstant", "setnewconstant", "setconstant", "setconstantvalue", "newconditional", "settrue", "setfalse", "settruevalue", "setfalsevalue", "setconditional", "newmacro", "setnewmacro", "newfraction", "newsignal", "newboundary", "dosingleempty", "dodoubleempty", "dotripleempty", "doquadrupleempty", "doquintupleempty", "dosixtupleempty", "doseventupleempty", "dosingleargument", "dodoubleargument", "dotripleargument", "doquadrupleargument", "doquintupleargument", "dosixtupleargument", "doseventupleargument", "dosinglegroupempty", "dodoublegroupempty", "dotriplegroupempty", "doquadruplegroupempty", "doquintuplegroupempty", "permitspacesbetweengroups", "dontpermitspacesbetweengroups", "nopdfcompression", "maximumpdfcompression", "normalpdfcompression", "onlypdfobjectcompression", "nopdfobjectcompression", "modulonumber", "dividenumber", "getfirstcharacter", "doifelsefirstchar", "doiffirstcharelse", "mathclassvalue", "startnointerferenc!
 e", "stopnointerference", "twodigits", "threedigits", "jobposx", "jobposy", "jobposw", "jobposh", "jobposd", "leftorright", "offinterlineskip", "oninterlineskip", "nointerlineskip", "strut", "halfstrut", "quarterstrut", "depthstrut", "halflinestrut", "noheightstrut", "setstrut", "strutbox", "strutht", "strutdp", "strutwd", "struthtdp", "strutgap", "begstrut", "endstrut", "lineheight", "leftboundary", "rightboundary", "signalcharacter", "ascender", "descender", "capheight", "aligncontentleft", "aligncontentmiddle", "aligncontentright", "shiftbox", "vpackbox", "hpackbox", "vpackedbox", "hpackedbox", "normalreqno", "startimath", "stopimath", "normalstartimath", "normalstopimath", "startdmath", "stopdmath", "normalstartdmath", "normalstopdmath", "uncramped", "cramped", "mathstyletrigger", "triggermathstyle", "triggeredmathstyle", "mathstylefont", "mathsmallstylefont", "mathstyleface", "mathsmallstyleface", "mathstylecommand", "mathpalette", "mathstylehbox", "mathstylevbox", "mathstylevcenter", "mathstylevcenteredhbox", "mathstylevcenteredvbox", "mathtext", "setmathsmalltextbox", "setmathtextbox", "pushmathstyle", "popmathstyle", "triggerdisplaystyle", "triggertextstyle", "triggerscriptstyle", "triggerscriptscriptstyle", "triggeruncrampedstyle", "triggercrampedstyle", "triggersmallstyle", "triggeruncrampedsmallstyle", "triggercrampedsmallstyle", "triggerbigstyle", "triggeruncrampedbigstyle", "triggercrampedbigstyle", "luaexpr", "expelsedoif", "expdoif", "expdoifnot", "expdoifelsecommon", "expdoifcommonelse", "expdoifelseinset", "expdoifinsetelse", "glyphscaled", "ctxdirectlua", "ctxlatelua", "ctxsprint", "ctxwrite", "ctxcommand", "ctxdirectcommand", "ctxlatecommand", "ctxreport", "ctxlua", "luacode", "lateluacode", "directluacode", "registerctxluafile", "ctxloadluafile", "luaversion", "luamajorversion", "luaminorversion", "ctxluacode", "luaconditional", "luaexpanded", "ctxluamatch", "ctxluamatchfile", "startluaparameterset", "stopluaparameterset", "luaparameterset", "definenamedlua", "obeylualines", "obeyluatokens", !
 "startluacode", "stopluacode", "startlua", "stoplua", "startctxfunction", "stopctxfunction", "ctxfunction", "startctxfunctiondefinition", "stopctxfunctiondefinition", "installctxfunction", "installprotectedctxfunction", "installprotectedctxscanner", "installctxscanner", "resetctxscanner", "cldprocessfile", "cldloadfile", "cldloadviafile", "cldcontext", "cldcommand", "carryoverpar", "freezeparagraphproperties", "defrostparagraphproperties", "setparagraphfreezing", "forgetparagraphfreezing", "updateparagraphproperties", "updateparagraphpenalties", "updateparagraphdemerits", "updateparagraphshapes", "updateparagraphlines", "updateparagraphpasses", "lastlinewidth", "assumelongusagecs", "righttolefthbox", "lefttorighthbox", "righttoleftvbox", "lefttorightvbox", "righttoleftvtop", "lefttorightvtop", "rtlhbox", "ltrhbox", "rtlvbox", "ltrvbox", "rtlvtop", "ltrvtop", "autodirhbox", "autodirvbox", "autodirvtop", "leftorrighthbox", "leftorrightvbox", "leftorrightvtop", "lefttoright", "righttoleft", "checkedlefttoright", "checkedrighttoleft", "synchronizelayoutdirection", "synchronizedisplaydirection", "synchronizeinlinedirection", "dirlre", "dirrle", "dirlro", "dirrlo", "rtltext", "ltrtext", "lesshyphens", "morehyphens", "nohyphens", "dohyphens", "dohyphencollapsing", "nohyphencollapsing", "compounddiscretionary", "doapostrophes", "noapostrophes", "Ucheckedstartdisplaymath", "Ucheckedstopdisplaymath", "break", "nobreak", "allowbreak", "goodbreak", "nospace", "nospacing", "dospacing", "naturalhbox", "naturalvbox", "naturalvtop", "naturalhpack", "naturalvpack", "naturaltpack", "reversehbox", "reversevbox", "reversevtop", "reversehpack", "reversevpack", "reversetpack", "hcontainer", "vcontainer", "tcontainer", "frule", "compoundhyphenpenalty", "start", "stop", "unsupportedcs", "openout", "closeout", "write", "openin", "closein", "read", "readline", "readlinedirect", "readfromterminal", "boxlines", "boxline", "setboxline", "copyboxline", "boxlinewd", "boxlineht", "boxlinedp", "boxlinenw", "boxlinenh", "boxlinend", "boxlinels",!
  "boxliners", "boxlinelh", "boxlinerh", "boxlinelp", "boxlinerp", "boxlinein", "boxrangewd", "boxrangeht", "boxrangedp", "boxlinemaxwd", "boxlinemaxht", "boxlinemaxdp", "bitwiseset", "bitwiseand", "bitwiseor", "bitwisexor", "bitwisenot", "bitwisenil", "ifbitwiseand", "bitwise", "bitwiseshift", "bitwiseflip", "textdir", "linedir", "pardir", "boxdir", "prelistbox", "postlistbox", "prelistcopy", "postlistcopy", "setprelistbox", "setpostlistbox", "noligaturing", "nokerning", "noexpansion", "noprotrusion", "noleftkerning", "noleftligaturing", "norightkerning", "norightligaturing", "noitaliccorrection", "overloadspacefactor", "futureletnexttoken", "defbackslashbreak", "letbackslashbreak", "pushoverloadmode", "popoverloadmode", "pushrunstate", "poprunstate", "suggestedalias", "showboxhere", "discoptioncodestring", "flagcodestring", "frozenparcodestring", "glyphoptioncodestring", "groupcodestring", "hyphenationcodestring", "mathcontrolcodestring", "mathflattencodestring", "normalizecodestring", "parcontextcodestring", "newlocalcount", "newlocaldimen", "newlocalskip", "newlocalmuskip", "newlocaltoks", "newlocalbox", "newlocalwrite", "newlocalread", "setnewlocalcount", "setnewlocaldimen", "setnewlocalskip", "setnewlocalmuskip", "setnewlocaltoks", "setnewlocalbox", "ifexpression", "localcontrolledrepeating", "expandedrepeating", "unexpandedrepeating", "lastchkinteger", "ifchkinteger", "mathordinary", "mathoperator", "mathbinary", "mathrelation", "mathpunctuation", "mathfraction", "mathradical", "mathmiddle", "mathaccent", "mathfenced", "mathghost", "mathvariable", "mathactive", "mathvcenter", "mathimaginary", "mathdifferential", "mathexponential", "mathdigit", "mathdivision", "mathfactorial", "mathwrapped", "mathconstruct", "mathdimension", "mathunary", "mathchemicalbond", "mathimplication", "filebasename", "filenameonly", "filedirname", "filesuffix", "setmathoption", "resetmathoption", "Ustack", "Umathdict", "Umathclass", "Ustyle", "Uchar", "Usuperscript", "Usubscript", "Unosuperscript", "Unosubscript", "Uprimescript", "U!
 superprescript", "Usubprescript", "Unosuperprescript", "Unosubprescript", "ignorefile", "boxwidth", "boxheight", "boxdepth", "shiftparshape", "rotateparshape", "granularfitnessclasses", "granularadjacentdemerits", "matchallfitnessclasses", "defaultmathforwardpenalties", "defaultmathbackwardpenalties", "optimalmathforwardpenalties", "optimalmathbackwardpenalties", "lesswidowpenalties", "lessclubpenalties", "lessbrokenpenalties", "strictwidowpenalties", "strictwidowpenaltiestwo", "strictwidowpenaltiesthree", "strictwidowpenaltiesfour", "strictclubpenalties", "strictclubpenaltiestwo", "strictclubpenaltiesthree", "strictclubpenaltiesfour", "strictbrokenpenalties", "lessorphanpenalties", "lessorphanpenaltiestwo", "lessorphanpenaltiesthree", "lessorphanpenaltiesfour", "nohpenalties", "novpenalties", "toddlerpenalty", "orphanpenalty" },
 }
\ No newline at end of file

Modified: trunk/Master/texmf-dist/context/data/scite/context/lexers/data/scite-context-data-interfaces.lua
===================================================================
--- trunk/Master/texmf-dist/context/data/scite/context/lexers/data/scite-context-data-interfaces.lua	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/context/data/scite/context/lexers/data/scite-context-data-interfaces.lua	2025-02-19 22:48:50 UTC (rev 74156)
@@ -1,4 +1,4 @@
 return {
- ["common"]={ "AEacute", "AEligature", "AEmacron", "AMSTEX", "Aacute", "Abreve", "Abreveacute", "Abrevedotbelow", "Abrevegrave", "Abrevehook", "Abrevetilde", "Acaron", "Acircumflex", "Acircumflexacute", "Acircumflexdotbelow", "Acircumflexgrave", "Acircumflexhook", "Acircumflextilde", "Adiaeresis", "Adiaeresismacron", "Adotaccent", "Adotaccentmacron", "Adotbelow", "Adoublegrave", "AfterPar", "Agrave", "Ahook", "Ainvertedbreve", "Alpha", "Alphabeticnumerals", "AmSTeX", "Amacron", "And", "Angstrom", "Aogonek", "Aring", "Aringacute", "Arrowvert", "Astroke", "Atilde", "BeforePar", "Beta", "Bhook", "Big", "Bigg", "Biggl", "Biggm", "Biggr", "Bigl", "Bigm", "Bigr", "Box", "Bumpeq", "CONTEXT", "Cacute", "Cap", "Caps", "Ccaron", "Ccedilla", "Ccircumflex", "Cdotaccent", "Character", "Characters", "Chi", "Chook", "ConTeXt", "Context", "ConvertConstantAfter", "ConvertToConstant", "Cstroke", "Cup", "DAYLONG", "DAYSHORT", "DZcaronligature", "DZligature", "Dafrican", "Dcaron", "Ddownarrow", "Delta", "Dhook", "Doteq", "Downarrow", "Dstroke", "Dzcaronligature", "Dzligature", "ETEX", "Eacute", "Ebreve", "Ecaron", "Ecedilla", "Ecircumflex", "Ecircumflexacute", "Ecircumflexdotbelow", "Ecircumflexgrave", "Ecircumflexhook", "Ecircumflextilde", "Ediaeresis", "Edotaccent", "Edotbelow", "Edoublegrave", "Egrave", "Ehook", "Einvertedbreve", "Emacron", "Eogonek", "Epsilon", "Eta", "Eth", "Etilde", "Eulerconst", "EveryLine", "EveryPar", "Fhook", "Finv", "Gacute", "Game", "Gamma", "Gbreve", "Gcaron", "Gcircumflex", "Gcommaaccent", "Gdotaccent", "GetPar", "Ghook", "GotoPar", "Greeknumerals", "Gstroke", "Hcaron", "Hcircumflex", "Hstroke", "IJligature", "INRSTEX", "Iacute", "Ibreve", "Icaron", "Icircumflex", "Idiaeresis", "Idotaccent", "Idotbelow", "Idoublegrave", "Igrave", "Ihook", "Iinvertedbreve", "Im", "Imacron", "Iogonek", "Iota", "Istroke", "Itilde", "Jcircumflex", "Join", "Kappa", "Kcaron", "Kcommaaccent", "Khook", "LAMSTEX", "LATEX", "LJligature", "LUAJITTEX", "LUAMETATEX", "LUATEX", "LaTeX", "Lacute", "LamSTeX", "Lambda", "Lbar!
 ", "Lcaron", "Lcommaaccent", "Ldotmiddle", "Ldsh", "Leftarrow", "Leftrightarrow", "Ljligature", "Lleftarrow", "Longleftarrow", "Longleftrightarrow", "Longmapsfrom", "Longmapsto", "Longrightarrow", "Lsh", "Lstroke", "Lua", "LuaMetaTeX", "LuaTeX", "LuajitTeX", "METAFONT", "METAFUN", "METAPOST", "MKII", "MKIV", "MKIX", "MKLX", "MKVI", "MKXI", "MKXL", "MONTH", "MONTHLONG", "MONTHSHORT", "MPII", "MPIV", "MPLX", "MPVI", "MPXL", "MPanchor", "MPbetex", "MPc", "MPcode", "MPcolor", "MPcoloronly", "MPcolumn", "MPd", "MPdrawing", "MPfontsizehskip", "MPgetmultipars", "MPgetmultishape", "MPgetposboxes", "MPh", "MPinclusions", "MPleftskip", "MPll", "MPlr", "MPls", "MPmenubuttons", "MPn", "MPoptions", "MPoverlayanchor", "MPp", "MPpage", "MPpardata", "MPplus", "MPpos", "MPpositiongraphic", "MPposset", "MPr", "MPrawvar", "MPregion", "MPrest", "MPrightskip", "MPrs", "MPstring", "MPtext", "MPtransparency", "MPul", "MPur", "MPv", "MPvar", "MPvariable", "MPvv", "MPw", "MPwhd", "MPx", "MPxy", "MPxywhd", "MPy", "Mapsfrom", "Mapsto", "MetaFont", "MetaFun", "MetaPost", "Mu", "NJligature", "Nacute", "Ncaron", "Ncommaaccent", "Nearrow", "Neng", "Ngrave", "Njligature", "NormalizeFontHeight", "NormalizeFontWidth", "NormalizeTextHeight", "NormalizeTextWidth", "Ntilde", "Nu", "Numbers", "Nwarrow", "OEligature", "Oacute", "Obreve", "Ocaron", "Ocircumflex", "Ocircumflexacute", "Ocircumflexdotbelow", "Ocircumflexgrave", "Ocircumflexhook", "Ocircumflextilde", "Odiaeresis", "Odiaeresismacron", "Odotaccent", "Odotaccentmacron", "Odotbelow", "Odoublegrave", "Ograve", "Ohook", "Ohorn", "Ohornacute", "Ohorndotbelow", "Ohorngrave", "Ohornhook", "Ohorntilde", "Ohungarumlaut", "Oinvertedbreve", "Omacron", "Omega", "Omicron", "Oogonek", "Oogonekmacron", "Ostroke", "Ostrokeacute", "Otilde", "Otildemacron", "P", "PDFETEX", "PDFTEX", "PDFcolor", "PICTEX", "PPCHTEX", "PPCHTeX", "PRAGMA", "Phi", "Phook", "Pi", "PiCTeX", "Plankconst", "PointsToBigPoints", "PointsToReal", "PointsToWholeBigPoints", "Psi", "PtToCm", "Racute", "Rcaron", "Rcommaaccent", "Rdoublegrave!
 ", "Rdsh", "Re", "ReadFile", "Relbar", "Rho", "Rightarrow", "Rinvertedbreve", "Romannumerals", "Rrightarrow", "Rsh", "S", "Sacute", "ScaledPointsToBigPoints", "ScaledPointsToWholeBigPoints", "Scaron", "Scedilla", "Schwa", "Scircumflex", "Scommaaccent", "Searrow", "Sigma", "Smallcapped", "Subset", "Supset", "Swarrow", "TABLE", "TEX", "TaBlE", "Tau", "Tcaron", "Tcedilla", "Tcommaaccent", "TeX", "TheNormalizedFontSize", "Theta", "Thook", "Thorn", "TransparencyHack", "Tstroke", "Uacute", "Ubreve", "Ucaron", "Ucircumflex", "Udiaeresis", "Udiaeresisacute", "Udiaeresiscaron", "Udiaeresisgrave", "Udiaeresismacron", "Udotbelow", "Udoublegrave", "Ugrave", "Uhook", "Uhorn", "Uhornacute", "Uhorndotbelow", "Uhorngrave", "Uhornhook", "Uhorntilde", "Uhungarumlaut", "Uinvertedbreve", "Umacron", "Uogonek", "Uparrow", "Updownarrow", "Upsilon", "Uring", "Utilde", "Uuparrow", "VDash", "Vdash", "VerboseNumber", "Vert", "Vhook", "Vvdash", "WEEKDAY", "WORD", "WORDS", "Wcircumflex", "WidthSpanningText", "Word", "Words", "XETEX", "XeTeX", "Xi", "Yacute", "Ycircumflex", "Ydiaeresis", "Ydotbelow", "Ygrave", "Yhook", "Ymacron", "Ytilde", "Zacute", "Zcaron", "Zdotaccent", "Zeta", "Zhook", "Zstroke", "aacute", "abbreviation", "abjadnaivenumerals", "abjadnodotnumerals", "abjadnumerals", "about", "abreve", "abreveacute", "abrevedotbelow", "abrevegrave", "abrevehook", "abrevetilde", "acaron", "acircumflex", "acircumflexacute", "acircumflexdotbelow", "acircumflexgrave", "acircumflexhook", "acircumflextilde", "activatespacehandler", "actualday", "actualmonth", "actualyear", "actuarial", "acute", "acwopencirclearrow", "adaptcollector", "adaptfontfeature", "adaptlayout", "adaptpapersize", "addfeature", "addtoJSpreamble", "addtocommalist", "addvalue", "adiaeresis", "adiaeresismacron", "adjointsymbol", "adotaccent", "adotaccentmacron", "adotbelow", "adoublegrave", "aeacute", "aeligature", "aemacron", "afghanicurrency", "aftersplitstring", "aftertestandsplitstring", "agrave", "ahook", "ainvertedbreve", "aleph", "alignbottom", "aligned", "alignedbox", !
 "alignedline", "alignhere", "alignmentcharacter", "allinputpaths", "alpha", "alphabeticnumerals", "alwayscitation", "alwayscite", "amacron", "amalg", "ampersand", "anchor", "angle", "aogonek", "appendetoks", "appendgvalue", "appendtocommalist", "appendtoks", "appendtoksonce", "appendvalue", "apply", "applyalternativestyle", "applyfunction", "applyfunctionof", "applyprocessor", "applytocharacters", "applytofirstcharacter", "applytosplitstringchar", "applytosplitstringcharspaced", "applytosplitstringline", "applytosplitstringlinespaced", "applytosplitstringword", "applytosplitstringwordspaced", "applytowords", "approx", "approxEq", "approxeq", "approxnEq", "arabicakbar", "arabicalayhe", "arabicallah", "arabicallallahou", "arabicasterisk", "arabicbasmalah", "arabiccomma", "arabiccuberoot", "arabicdateseparator", "arabicdecimals", "arabicdisputedendofayah", "arabicendofayah", "arabicexnumerals", "arabicfootnotemarker", "arabicfourthroot", "arabichighain", "arabichighalayheassallam", "arabichigheqala", "arabichighesala", "arabichighfootnotemarker", "arabichighjeem", "arabichighlamalef", "arabichighmadda", "arabichighmeemlong", "arabichighmeemshort", "arabichighnisf", "arabichighnoon", "arabichighnoonkasra", "arabichighqaf", "arabichighqif", "arabichighradiallahouanhu", "arabichighrahmatullahalayhe", "arabichighrubc", "arabichighsad", "arabichighsajda", "arabichighsakta", "arabichighsallallahou", "arabichighseen", "arabichighsmallsafha", "arabichightah", "arabichightakhallus", "arabichighthalatha", "arabichighwaqf", "arabichighyeh", "arabichighzain", "arabicjallajalalouhou", "arabiclettermark", "arabiclowmeemlong", "arabiclownoonkasra", "arabiclowseen", "arabicmisra", "arabicmuhammad", "arabicnumber", "arabicnumberabove", "arabicnumerals", "arabicparenleft", "arabicparenright", "arabicpercent", "arabicperiod", "arabicpermille", "arabicpertenthousand", "arabicpoeticverse", "arabicqala", "arabicquestion", "arabicrasoul", "arabicray", "arabicrialsign", "arabicsafha", "arabicsajdah", "arabicsalla", "arabicsamvat", "arabic!
 sanah", "arabicsemicolon", "arabicshighthreedots", "arabicslcm", "arabicstartofrubc", "arabictripledot", "arabicvowelwaw", "arabicvowelyeh", "arabicwasallam", "arg", "aring", "aringacute", "asciimode", "asciistr", "aside", "assignalfadimension", "assigndimen", "assigndimension", "assignifempty", "assigntranslation", "assignvalue", "assignwidth", "assumelongusagecs", "ast", "astype", "asymp", "at", "atilde", "atleftmargin", "atpage", "atrightmargin", "attachment", "autocap", "autodirhbox", "autodirvbox", "autodirvtop", "autoinsertnextspace", "autointegral", "automathematics", "autoorientation", "autopagestaterealpage", "autopagestaterealpageorder", "autorule", "autosetups", "availablehsize", "averagecharwidth", "backepsilon", "background", "backgroundimage", "backgroundimagefill", "backgroundline", "backsim", "backslash", "bar", "barleftarrow", "barleftarrowrightarrowbar", "barovernorthwestarrow", "barwedge", "basegrid", "baselinebottom", "baselineleftbox", "baselinemiddlebox", "baselinerightbox", "bbordermatrix", "bbox", "because", "beforesplitstring", "beforetestandsplitstring", "beta", "beth", "between", "bhook", "big", "bigbodyfont", "bigcap", "bigcirc", "bigcircle", "bigcup", "bigdiamond", "bigg", "bigger", "biggl", "biggm", "biggr", "bigl", "bigm", "bigodot", "bigoplus", "bigotimes", "bigr", "bigskip", "bigsqcap", "bigsqcup", "bigsquare", "bigstar", "bigtimes", "bigtriangledown", "bigtriangleup", "bigudot", "biguplus", "bigvee", "bigwedge", "binom", "bitmapimage", "blacklozenge", "blackrule", "blackrules", "blacksquare", "blacktriangle", "blacktriangledown", "blacktriangleleft", "blacktriangleright", "blank", "blap", "bleed", "bleedheight", "bleedwidth", "blockligatures", "blockquote", "blocksynctexfile", "blockuservariable", "bodyfontenvironmentlist", "bodyfontsize", "bold", "boldface", "bolditalic", "boldslanted", "bookmark", "booleanmodevalue", "bordermatrix", "bot", "bottombox", "bottomleftbox", "bottomrightbox", "bowtie", "boxcursor", "boxdot", "boxmarker", "boxminus", "boxofsize", "boxplus", "boxrefer!
 ence", "boxtimes", "bpos", "breakablethinspace", "breakhere", "breve", "bstroke", "btxabbreviatedjournal", "btxaddjournal", "btxalwayscitation", "btxauthorfield", "btxdetail", "btxdirect", "btxdoif", "btxdoifcombiinlistelse", "btxdoifelse", "btxdoifelsecombiinlist", "btxdoifelsesameasprevious", "btxdoifelsesameaspreviouschecked", "btxdoifelseuservariable", "btxdoifnot", "btxdoifsameaspreviouscheckedelse", "btxdoifsameaspreviouselse", "btxdoifuservariableelse", "btxexpandedjournal", "btxfield", "btxfieldname", "btxfieldtype", "btxfirstofrange", "btxflush", "btxflushauthor", "btxflushauthorinverted", "btxflushauthorinvertedshort", "btxflushauthorname", "btxflushauthornormal", "btxflushauthornormalshort", "btxflushsuffix", "btxfoundname", "btxfoundtype", "btxhiddencitation", "btxhybridcite", "btxlabellanguage", "btxlabeltext", "btxlistcitation", "btxloadjournalist", "btxoneorrange", "btxremapauthor", "btxsavejournalist", "btxsetup", "btxsingularorplural", "btxsingularplural", "btxtextcitation", "buildmathaccent", "buildtextaccent", "buildtextbottomcomma", "buildtextbottomdot", "buildtextcedilla", "buildtextgrave", "buildtextmacron", "buildtextognek", "bullet", "button", "cacute", "calligraphic", "camel", "cap", "capital", "carriagereturn", "catcodetablename", "cbox", "ccaron", "ccedilla", "ccircumflex", "ccurl", "cdot", "cdotaccent", "cdotp", "cdots", "centeraligned", "centerbox", "centerdot", "centeredbox", "centeredlastline", "centerednextbox", "centerline", "cfrac", "chapter", "character", "characters", "chardescription", "charwidthlanguage", "check", "checkcharacteralign", "checkedblank", "checkedchar", "checkedfiller", "checkedstrippedcsname", "checkinjector", "checkmark", "checknextindentation", "checknextinjector", "checkpage", "checkparameters", "checkpreviousinjector", "checksoundtrack", "checktwopassdata", "checkvariables", "chem", "chemical", "chemicalbottext", "chemicalmidtext", "chemicalsymbol", "chemicaltext", "chemicaltoptext", "chi", "chineseallnumerals", "chinesecapnumerals", "chinesenumerals", "ch!
 ook", "circ", "circeq", "circlearrowleft", "circlearrowright", "circledR", "circledS", "circledast", "circledcirc", "circleddash", "circledequals", "circleonrightarrow", "citation", "cite", "clap", "classfont", "cldcommand", "cldcontext", "cldloadfile", "cldprocessfile", "cleftarrow", "clip", "clippedoverlayimage", "clonefield", "clubsuit", "collect", "collectedtext", "collectexpanded", "colon", "coloncolonequals", "colonequals", "color", "colorbar", "colorcomponents", "colored", "coloronly", "colorvalue", "column", "columnbreak", "columnsetspanwidth", "combinepages", "commalistelement", "commalistsentence", "commalistsize", "comment", "comparecolorgroup", "comparedimension", "comparedimensioneps", "comparepalet", "complement", "completebtxrendering", "completecontent", "completeindex", "completelist", "completelistofabbreviations", "completelistofchemicals", "completelistoffigures", "completelistofgraphics", "completelistofintermezzi", "completelistoflogos", "completelistofpublications", "completelistofsorts", "completelistofsynonyms", "completelistoftables", "completepagenumber", "completeregister", "complexes", "complexorsimple", "complexorsimpleempty", "component", "composedcollector", "composedlayer", "compounddiscretionary", "compresult", "cong", "constantdimen", "constantdimenargument", "constantemptyargument", "constantnumber", "constantnumberargument", "contentreference", "continuednumber", "continueifinputfile", "convertargument", "convertcommand", "convertedcounter", "converteddimen", "convertedsubcounter", "convertmonth", "convertnumber", "convertvalue", "convertvboxtohbox", "convolve", "coprod", "copyboxfromcache", "copybtxlabeltext", "copyfield", "copyheadtext", "copylabeltext", "copymathlabeltext", "copyoperatortext", "copypages", "copyparameters", "copyposition", "copyprefixtext", "copyright", "copysetups", "copysuffixtext", "copytaglabeltext", "copyunittext", "correctwhitespace", "countersubs", "counttoken", "counttokens", "cramped", "crampedclap", "crampedllap", "crampedrlap", "crightarrow", "c!
 rightoverleftarrow", "crlf", "crlfplaceholder", "crossproduct", "cstroke", "ctop", "ctxcommand", "ctxdirectcommand", "ctxdirectlua", "ctxfunction", "ctxlatecommand", "ctxlatelua", "ctxloadluafile", "ctxlua", "ctxluabuffer", "ctxluacode", "ctxreport", "ctxsprint", "cup", "curlyeqprec", "curlyeqsucc", "curlyvee", "curlywedge", "currentassignmentlistkey", "currentassignmentlistvalue", "currentbtxuservariable", "currentcommalistitem", "currentcomponent", "currentdate", "currentenvironment", "currentfeaturetest", "currentheadnumber", "currentinterface", "currentlanguage", "currentlistentrydestinationattribute", "currentlistentrylimitedtext", "currentlistentrynumber", "currentlistentrypagenumber", "currentlistentryreferenceattribute", "currentlistentrytitle", "currentlistentrytitlerendered", "currentlistsymbol", "currentmainlanguage", "currentmessagetext", "currentmoduleparameter", "currentoutputstream", "currentproduct", "currentproject", "currentregime", "currentregisterpageuserdata", "currentresponses", "currenttime", "currentvalue", "currentxtablecolumn", "currentxtablerow", "curvearrowleft", "curvearrowright", "cwopencirclearrow", "cyrillicA", "cyrillicAE", "cyrillicAbreve", "cyrillicAdiaeresis", "cyrillicB", "cyrillicBIGYUS", "cyrillicBIGYUSiotified", "cyrillicC", "cyrillicCH", "cyrillicCHEDC", "cyrillicCHEDCabkhasian", "cyrillicCHEabkhasian", "cyrillicCHEdiaeresis", "cyrillicCHEkhakassian", "cyrillicCHEvertstroke", "cyrillicD", "cyrillicDASIAPNEUMATA", "cyrillicDJE", "cyrillicDZE", "cyrillicDZEabkhasian", "cyrillicDZHE", "cyrillicE", "cyrillicELtail", "cyrillicEMtail", "cyrillicENDC", "cyrillicENGHE", "cyrillicENhook", "cyrillicENtail", "cyrillicEREV", "cyrillicERY", "cyrillicERtick", "cyrillicEbreve", "cyrillicEdiaeresis", "cyrillicEgrave", "cyrillicEiotified", "cyrillicF", "cyrillicFITA", "cyrillicG", "cyrillicGHEmidhook", "cyrillicGHEstroke", "cyrillicGHEupturn", "cyrillicGJE", "cyrillicH", "cyrillicHA", "cyrillicHADC", "cyrillicHRDSN", "cyrillicI", "cyrillicIE", "cyrillicII", "cyrillicISHRT", "cyrillicISHRT!
 tail", "cyrillicIZHITSA", "cyrillicIZHITSAdoublegrave", "cyrillicIdiaeresis", "cyrillicIgrave", "cyrillicImacron", "cyrillicJE", "cyrillicK", "cyrillicKADC", "cyrillicKAbashkir", "cyrillicKAhook", "cyrillicKAstroke", "cyrillicKAvertstroke", "cyrillicKJE", "cyrillicKOPPA", "cyrillicKSI", "cyrillicL", "cyrillicLITTLEYUS", "cyrillicLITTLEYUSiotified", "cyrillicLJE", "cyrillicM", "cyrillicN", "cyrillicNJE", "cyrillicO", "cyrillicOMEGA", "cyrillicOMEGAround", "cyrillicOMEGAtitlo", "cyrillicOT", "cyrillicObarred", "cyrillicObarreddiaeresis", "cyrillicOdiaeresis", "cyrillicP", "cyrillicPALATALIZATION", "cyrillicPALOCHKA", "cyrillicPEmidhook", "cyrillicPSI", "cyrillicPSILIPNEUMATA", "cyrillicR", "cyrillicS", "cyrillicSCHWA", "cyrillicSCHWAdiaeresis", "cyrillicSDSC", "cyrillicSEMISOFT", "cyrillicSFTSN", "cyrillicSH", "cyrillicSHCH", "cyrillicSHHA", "cyrillicT", "cyrillicTEDC", "cyrillicTETSE", "cyrillicTITLO", "cyrillicTSHE", "cyrillicU", "cyrillicUK", "cyrillicUSHRT", "cyrillicUdiaeresis", "cyrillicUdoubleacute", "cyrillicUmacron", "cyrillicV", "cyrillicYA", "cyrillicYAT", "cyrillicYERUdiaeresis", "cyrillicYI", "cyrillicYO", "cyrillicYU", "cyrillicYstr", "cyrillicYstrstroke", "cyrillicZ", "cyrillicZDSC", "cyrillicZEdiaeresis", "cyrillicZH", "cyrillicZHEbreve", "cyrillicZHEdescender", "cyrillicZHEdiaeresis", "cyrillica", "cyrillicabreve", "cyrillicadiaeresis", "cyrillicae", "cyrillicb", "cyrillicbigyus", "cyrillicbigyusiotified", "cyrillicc", "cyrillicch", "cyrilliccheabkhasian", "cyrillicchedc", "cyrillicchedcabkhasian", "cyrillicchediaeresis", "cyrillicchekhakassian", "cyrillicchevertstroke", "cyrillicd", "cyrillicdje", "cyrillicdze", "cyrillicdzeabkhasian", "cyrillicdzhe", "cyrillice", "cyrillicebreve", "cyrillicediaeresis", "cyrillicegrave", "cyrilliceiotified", "cyrilliceltail", "cyrillicemtail", "cyrillicendc", "cyrillicenghe", "cyrillicenhook", "cyrillicentail", "cyrillicerev", "cyrillicertick", "cyrillicery", "cyrillicf", "cyrillicfita", "cyrillicg", "cyrillicghemidhook", "cyrillicghestroke", "cyrillicgheupturn",!
  "cyrillicgje", "cyrillich", "cyrillicha", "cyrillichadc", "cyrillichrdsn", "cyrillici", "cyrillicidiaeresis", "cyrillicie", "cyrillicigrave", "cyrillicii", "cyrillicimacron", "cyrillicishrt", "cyrillicishrttail", "cyrillicizhitsa", "cyrillicizhitsadoublegrave", "cyrillicje", "cyrillick", "cyrillickabashkir", "cyrillickadc", "cyrillickahook", "cyrillickastroke", "cyrillickavertstroke", "cyrillickje", "cyrillickoppa", "cyrillicksi", "cyrillicl", "cyrilliclittleyus", "cyrilliclittleyusiotified", "cyrilliclje", "cyrillicm", "cyrillicn", "cyrillicnje", "cyrillico", "cyrillicobarred", "cyrillicobarreddiaeresis", "cyrillicodiaeresis", "cyrillicomega", "cyrillicomegaround", "cyrillicomegatitlo", "cyrillicot", "cyrillicp", "cyrillicpemidhook", "cyrillicpsi", "cyrillicr", "cyrillics", "cyrillicschwa", "cyrillicschwadiaeresis", "cyrillicsdsc", "cyrillicsemisoft", "cyrillicsftsn", "cyrillicsh", "cyrillicshch", "cyrillicshha", "cyrillict", "cyrillictedc", "cyrillictetse", "cyrillictshe", "cyrillicu", "cyrillicudiaeresis", "cyrillicudoubleacute", "cyrillicuk", "cyrillicumacron", "cyrillicushrt", "cyrillicv", "cyrillicya", "cyrillicyat", "cyrillicyerudiaeresis", "cyrillicyi", "cyrillicyo", "cyrillicystr", "cyrillicystrstroke", "cyrillicyu", "cyrillicz", "cyrilliczdsc", "cyrilliczediaeresis", "cyrilliczh", "cyrilliczhebreve", "cyrilliczhedescender", "cyrilliczhediaeresis", "d", "dag", "dagger", "daleth", "dasharrow", "dashedleftarrow", "dashedrightarrow", "dashv", "datasetvariable", "date", "daylong", "dayoftheweek", "dayshort", "dayspermonth", "dbinom", "dcaron", "dcurl", "ddag", "ddagger", "dddot", "ddot", "ddots", "decrement", "decrementcounter", "decrementedcounter", "decrementpagenumber", "decrementsubpagenumber", "decrementvalue", "defaultinterface", "defaultobjectpage", "defaultobjectreference", "defcatcodecommand", "defconvertedargument", "defconvertedcommand", "defconvertedvalue", "define", "defineMPinstance", "defineTABLEsetup", "defineaccent", "defineactivecharacter", "definealternativestyle", "defineanchor", "defin!
 eattachment", "defineattribute", "definebackground", "definebar", "defineblock", "definebodyfont", "definebodyfontenvironment", "definebodyfontswitch", "definebreakpoint", "definebreakpoints", "definebtx", "definebtxdataset", "definebtxregister", "definebtxrendering", "definebuffer", "definebutton", "definecapitals", "definecharacter", "definecharacterkerning", "definecharacterspacing", "definechemical", "definechemicals", "definechemicalsymbol", "definecollector", "definecolor", "definecolorgroup", "definecolumnbreak", "definecolumnset", "definecolumnsetarea", "definecolumnsetspan", "definecombination", "definecombinedlist", "definecommand", "definecomment", "definecomplexorsimple", "definecomplexorsimpleempty", "defineconversion", "defineconversionset", "definecounter", "definedataset", "definedate", "definedelimitedtext", "definedeq", "definedescription", "definedfont", "definedocument", "defineeffect", "defineenumeration", "defineexpandable", "defineexpansion", "defineexternalfigure", "definefacingfloat", "definefallbackfamily", "definefield", "definefieldbody", "definefieldbodyset", "definefieldcategory", "definefieldstack", "definefiguresymbol", "definefileconstant", "definefilefallback", "definefilesynonym", "definefiller", "definefirstline", "definefittingpage", "definefloat", "definefont", "definefontalternative", "definefontfallback", "definefontfamily", "definefontfamilypreset", "definefontfeature", "definefontfile", "definefontsize", "definefontsolution", "definefontstyle", "definefontsynonym", "defineformula", "defineformulaalternative", "defineformulaframed", "defineframed", "defineframedcontent", "defineframedtable", "defineframedtext", "definefrozenfont", "defineglobalcolor", "definegraphictypesynonym", "definegridsnapping", "definehbox", "definehead", "defineheadalternative", "definehelp", "definehigh", "definehighlight", "definehspace", "definehyphenationfeatures", "defineindentedtext", "defineindenting", "defineinitial", "defineinsertion", "defineinteraction", "defineinteractionbar", "definein!
 teractionmenu", "defineinterfaceconstant", "defineinterfaceelement", "defineinterfacevariable", "defineinterlinespace", "defineintermediatecolor", "defineitemgroup", "defineitems", "definelabel", "definelabelclass", "definelayer", "definelayerpreset", "definelayout", "definelinefiller", "definelinenote", "definelinenumbering", "definelines", "definelist", "definelistalternative", "definelistextra", "definelow", "definelowhigh", "definelowmidhigh", "definemakeup", "definemarginblock", "definemargindata", "definemarker", "definemarking", "definemathaccent", "definemathalignment", "definemathcases", "definemathcommand", "definemathdouble", "definemathdoubleextensible", "definemathematics", "definemathextensible", "definemathfence", "definemathfraction", "definemathframed", "definemathmatrix", "definemathornament", "definemathover", "definemathoverextensible", "definemathovertextextensible", "definemathradical", "definemathstackers", "definemathstyle", "definemathtriplet", "definemathunder", "definemathunderextensible", "definemathundertextextensible", "definemathunstacked", "definemeasure", "definemessageconstant", "definemixedcolumns", "definemode", "definemulticolumns", "definemultitonecolor", "definenamedcolor", "definenamespace", "definenarrower", "definenote", "defineorientation", "defineornament", "defineoutputroutine", "defineoutputroutinecommand", "defineoverlay", "definepage", "definepagebreak", "definepagechecker", "definepagecolumns", "definepageinjection", "definepageinjectionalternative", "definepageshift", "definepagestate", "definepairedbox", "definepalet", "definepapersize", "defineparagraph", "defineparagraphs", "defineparallel", "defineparbuilder", "defineperiodkerning", "defineplaceholder", "defineplacement", "definepositioning", "defineprefixset", "defineprocesscolor", "defineprocessor", "defineprofile", "defineprogram", "definepushbutton", "definepushsymbol", "definereference", "definereferenceformat", "defineregister", "definerenderingwindow", "defineresetset", "defineruby", "definescale", "de!
 finescript", "definesection", "definesectionblock", "definesectionlevels", "defineselector", "defineseparatorset", "defineshift", "definesidebar", "definesort", "definesorting", "definespotcolor", "definestartstop", "definestyle", "definestyleinstance", "definesubfield", "definesubformula", "definesymbol", "definesynonym", "definesynonyms", "definesystemattribute", "definesystemconstant", "definesystemvariable", "definetabletemplate", "definetabulate", "definetext", "definetextbackground", "definetextflow", "definetextnote", "definetokenlist", "definetooltip", "definetransparency", "definetwopasslist", "definetype", "definetypeface", "definetypescriptprefix", "definetypescriptsynonym", "definetypesetting", "definetyping", "defineunit", "defineuserdata", "defineuserdataalternative", "defineviewerlayer", "definevspace", "definevspacing", "definevspacingamount", "definextable", "defrostparagraphproperties", "delimited", "delimitedtext", "delta", "depthofstring", "depthonlybox", "depthspanningtext", "depthstrut", "derivativesymbol", "determineheadnumber", "determinelistcharacteristics", "determinenoflines", "determineregistercharacteristics", "devanagarinumerals", "dfrac", "dhook", "diameter", "diamond", "diamondsuit", "differentialD", "differentiald", "digamma", "digits", "dimensiontocount", "directboxfromcache", "directcolor", "directcolored", "directconvertedcounter", "directcopyboxfromcache", "directdummyparameter", "directgetboxllx", "directgetboxlly", "directhighlight", "directlocalframed", "directluacode", "directparwrapper", "directselect", "directsetbar", "directsetup", "directsymbol", "directvspacing", "dis", "disabledirectives", "disableexperiments", "disablemode", "disableoutputstream", "disableparpositions", "disableregime", "disabletrackers", "displaymath", "displaymathematics", "displaymessage", "disposeluatable", "distributedhsize", "div", "dividedsize", "divideontimes", "divides", "doadaptleftskip", "doadaptrightskip", "doaddfeature", "doassign", "doassignempty", "doboundtext", "docheckassignment", !
 "docheckedpair", "documentvariable", "dodoubleargument", "dodoubleargumentwithset", "dodoubleempty", "dodoubleemptywithset", "dodoublegroupempty", "doeassign", "doexpandedrecurse", "dofastloopcs", "dogetattribute", "dogetattributeid", "dogetcommacommandelement", "dogobbledoubleempty", "dogobblesingleempty", "dohyphens", "doif", "doifMPgraphicelse", "doifallcommon", "doifallcommonelse", "doifalldefinedelse", "doifallmodes", "doifallmodeselse", "doifassignmentelse", "doifassignmentelsecs", "doifblackelse", "doifbothsides", "doifbothsidesoverruled", "doifboxelse", "doifbufferelse", "doifcheckedpagestate", "doifcolor", "doifcolorelse", "doifcommandhandler", "doifcommandhandlerelse", "doifcommon", "doifcommonelse", "doifcontent", "doifconversiondefinedelse", "doifconversionnumberelse", "doifcounter", "doifcounterelse", "doifcurrentfonthasfeatureelse", "doifdefined", "doifdefinedcounter", "doifdefinedcounterelse", "doifdefinedelse", "doifdimensionelse", "doifdimenstringelse", "doifdocumentargument", "doifdocumentargumentelse", "doifdocumentfilename", "doifdocumentfilenameelse", "doifdocumentvariable", "doifdocumentvariableelse", "doifdrawingblackelse", "doifelse", "doifelseMPgraphic", "doifelseallcommon", "doifelsealldefined", "doifelseallmodes", "doifelseassignment", "doifelseassignmentcs", "doifelseblack", "doifelsebox", "doifelseboxincache", "doifelsebuffer", "doifelsecolor", "doifelsecommandhandler", "doifelsecommon", "doifelseconversiondefined", "doifelseconversionnumber", "doifelsecounter", "doifelsecurrentfonthasfeature", "doifelsecurrentsortingused", "doifelsecurrentsynonymshown", "doifelsecurrentsynonymused", "doifelsedefined", "doifelsedefinedcounter", "doifelsedimension", "doifelsedimenstring", "doifelsedocumentargument", "doifelsedocumentfilename", "doifelsedocumentvariable", "doifelsedrawingblack", "doifelseempty", "doifelseemptyvalue", "doifelseemptyvariable", "doifelseenv", "doifelsefastoptionalcheck", "doifelsefastoptionalcheckcs", "doifelsefieldbody", "doifelsefieldcategory", "doifelsefigure", "doifel!
 sefile", "doifelsefiledefined", "doifelsefileexists", "doifelsefirstchar", "doifelseflagged", "doifelsefontchar", "doifelsefontfeature", "doifelsefontpresent", "doifelsefontsynonym", "doifelseframed", "doifelsehasspace", "doifelsehelp", "doifelseincsname", "doifelseindented", "doifelseinelement", "doifelseinputfile", "doifelseinsertion", "doifelseinset", "doifelseinstring", "doifelseinsymbolset", "doifelseintoks", "doifelseintwopassdata", "doifelseitalic", "doifelselanguage", "doifelselayerdata", "doifelselayoutdefined", "doifelselayoutsomeline", "doifelselayouttextline", "doifelseleapyear", "doifelselist", "doifelselocation", "doifelselocfile", "doifelsemainfloatbody", "doifelsemarkedcontent", "doifelsemarkedpage", "doifelsemarking", "doifelsemeaning", "doifelsemessage", "doifelsemode", "doifelsenextbgroup", "doifelsenextbgroupcs", "doifelsenextchar", "doifelsenextoptional", "doifelsenextoptionalcs", "doifelsenextparenthesis", "doifelsenonzeropositive", "doifelsenoteonsamepage", "doifelsenothing", "doifelsenumber", "doifelseobjectfound", "doifelseobjectreferencefound", "doifelseoddpage", "doifelseoddpagefloat", "doifelseoldercontext", "doifelseolderversion", "doifelseorientation", "doifelseoverlapping", "doifelseoverlay", "doifelseparallel", "doifelseparentfile", "doifelseparwrapper", "doifelsepath", "doifelsepathexists", "doifelsepatterns", "doifelseposition", "doifelsepositionaction", "doifelsepositiononpage", "doifelsepositionsonsamepage", "doifelsepositionsonthispage", "doifelsepositionsused", "doifelsereferencefound", "doifelserightpage", "doifelserightpagefloat", "doifelserighttoleftinbox", "doifelsesamelinereference", "doifelsesamestring", "doifelsesetups", "doifelsesomebackground", "doifelsesomespace", "doifelsesomething", "doifelsesometoks", "doifelsestringinstring", "doifelsestructurelisthasnumber", "doifelsestructurelisthaspage", "doifelsesymboldefined", "doifelsesymbolset", "doifelsetext", "doifelsetextflow", "doifelsetextflowcollector", "doifelsetopofpage", "doifelsetypingfile", "doifelseundefined"!
 , "doifelseurldefined", "doifelsevalue", "doifelsevaluenothing", "doifelsevariable", "doifempty", "doifemptyelse", "doifemptytoks", "doifemptyvalue", "doifemptyvalueelse", "doifemptyvariable", "doifemptyvariableelse", "doifenv", "doifenvelse", "doiffastoptionalcheckcselse", "doiffastoptionalcheckelse", "doiffieldbodyelse", "doiffieldcategoryelse", "doiffigureelse", "doiffile", "doiffiledefinedelse", "doiffileelse", "doiffileexistselse", "doiffirstcharelse", "doifflaggedelse", "doiffontcharelse", "doiffontfeatureelse", "doiffontpresentelse", "doiffontsynonymelse", "doifhasspaceelse", "doifhelpelse", "doifincsnameelse", "doifinelementelse", "doifinputfileelse", "doifinsertionelse", "doifinset", "doifinsetelse", "doifinstring", "doifinstringelse", "doifinsymbolset", "doifinsymbolsetelse", "doifintokselse", "doifintwopassdataelse", "doifitalicelse", "doiflanguageelse", "doiflayerdataelse", "doiflayoutdefinedelse", "doiflayoutsomelineelse", "doiflayouttextlineelse", "doifleapyearelse", "doiflistelse", "doiflocationelse", "doiflocfileelse", "doifmainfloatbodyelse", "doifmarkingelse", "doifmeaningelse", "doifmessageelse", "doifmode", "doifmodeelse", "doifnextbgroupcselse", "doifnextbgroupelse", "doifnextcharelse", "doifnextoptionalcselse", "doifnextoptionalelse", "doifnextparenthesiselse", "doifnonzeropositiveelse", "doifnot", "doifnotallcommon", "doifnotallmodes", "doifnotcommandhandler", "doifnotcommon", "doifnotcounter", "doifnotdocumentargument", "doifnotdocumentfilename", "doifnotdocumentvariable", "doifnotempty", "doifnotemptyvalue", "doifnotemptyvariable", "doifnotenv", "doifnoteonsamepageelse", "doifnotescollected", "doifnotfile", "doifnotflagged", "doifnothing", "doifnothingelse", "doifnotinset", "doifnotinsidesplitfloat", "doifnotinstring", "doifnotmode", "doifnotnumber", "doifnotsamestring", "doifnotsetups", "doifnotvalue", "doifnotvariable", "doifnumber", "doifnumberelse", "doifobjectfoundelse", "doifobjectreferencefoundelse", "doifoddpageelse", "doifoddpagefloatelse", "doifoldercontextelse", "doifoldervers!
 ionelse", "doifoutervmode", "doifoverlappingelse", "doifoverlayelse", "doifparallelelse", "doifparentfileelse", "doifpathelse", "doifpathexistselse", "doifpatternselse", "doifposition", "doifpositionaction", "doifpositionactionelse", "doifpositionelse", "doifpositiononpageelse", "doifpositionsonsamepageelse", "doifpositionsonthispageelse", "doifpositionsusedelse", "doifreferencefoundelse", "doifrightpageelse", "doifrightpagefloatelse", "doifrighttoleftinboxelse", "doifsamelinereferenceelse", "doifsamestring", "doifsamestringelse", "doifsetups", "doifsetupselse", "doifsomebackground", "doifsomebackgroundelse", "doifsomespaceelse", "doifsomething", "doifsomethingelse", "doifsometoks", "doifsometokselse", "doifstringinstringelse", "doifstructurelisthasnumberelse", "doifstructurelisthaspageelse", "doifsymboldefinedelse", "doifsymbolsetelse", "doiftext", "doiftextelse", "doiftextflowcollectorelse", "doiftextflowelse", "doiftopofpageelse", "doiftypingfileelse", "doifundefined", "doifundefinedcounter", "doifundefinedelse", "doifunknownfontfeature", "doifurldefinedelse", "doifvalue", "doifvalueelse", "doifvaluenothing", "doifvaluenothingelse", "doifvaluesomething", "doifvariable", "doifvariableelse", "doindentation", "dollar", "doloop", "doloopoverlist", "donothing", "dontconvertfont", "dontleavehmode", "dontpermitspacesbetweengroups", "dopositionaction", "doprocesslocalsetups", "doquadrupleargument", "doquadrupleempty", "doquadruplegroupempty", "doquintupleargument", "doquintupleempty", "doquintuplegroupempty", "dorechecknextindentation", "dorecurse", "dorepeatwithcommand", "doreplacefeature", "doresetandafffeature", "doresetattribute", "dorotatebox", "dosetattribute", "dosetleftskipadaption", "dosetrightskipadaption", "dosetupcheckedinterlinespace", "doseventupleargument", "doseventupleempty", "dosingleargument", "dosingleempty", "dosinglegroupempty", "dosixtupleargument", "dosixtupleempty", "dosomebreak", "dostepwiserecurse", "dosubtractfeature", "dot", "doteq", "doteqdot", "dotfill", "dotfskip", "dotlessI", "dotless!
 J", "dotlessi", "dotlessj", "dotlessjstroke", "dotminus", "dotoks", "dotplus", "dotripleargument", "dotripleargumentwithset", "dotripleempty", "dotripleemptywithset", "dotriplegroupempty", "dots", "dottedcircle", "dottedrightarrow", "doublebar", "doublebond", "doublebrace", "doublebracket", "doublecap", "doublecup", "doubleparent", "doubleprime", "doubleverticalbar", "dowith", "dowithnextbox", "dowithnextboxcontent", "dowithnextboxcontentcs", "dowithnextboxcs", "dowithpargument", "dowithrange", "dowithwargument", "downarrow", "downdasharrow", "downdownarrows", "downharpoonleft", "downharpoonright", "downuparrows", "downwhitearrow", "downzigzagarrow", "dpofstring", "dstroke", "dtail", "dummydigit", "dummyparameter", "dzcaronligature", "dzligature", "eTeX", "eacute", "ebreve", "ecaron", "ecedilla", "ecircumflex", "ecircumflexacute", "ecircumflexdotbelow", "ecircumflexgrave", "ecircumflexhook", "ecircumflextilde", "edefconvertedargument", "ediaeresis", "edotaccent", "edotbelow", "edoublegrave", "ee", "efcmaxheight", "efcmaxwidth", "efcminheight", "efcminwidth", "efcparameter", "effect", "egrave", "ehook", "einvertedbreve", "elapsedseconds", "elapsedsteptime", "elapsedtime", "eleftarrowfill", "eleftharpoondownfill", "eleftharpoonupfill", "eleftrightarrowfill", "ell", "em", "emacron", "emdash", "emphasisboldface", "emphasistypeface", "emptylines", "emptyset", "emquad", "emspace", "enableasciimode", "enabledirectives", "enableexperiments", "enablemode", "enableoutputstream", "enableparpositions", "enableregime", "enabletrackers", "endash", "endnote", "enquad", "enskip", "enspace", "env", "environment", "envvar", "eogonek", "eoverbarfill", "eoverbracefill", "eoverbracketfill", "eoverparentfill", "epos", "epsilon", "eq", "eqcirc", "eqeq", "eqeqeq", "eqgtr", "eqless", "eqsim", "eqslantgtr", "eqslantless", "equaldigits", "equalscolon", "equiv", "erightarrowfill", "erightharpoondownfill", "erightharpoonupfill", "eta", "eth", "ethiopic", "etilde", "etwoheadrightarrowfill", "eunderbarfill", "eunderbracefill", "eunderbracketf!
 ill", "eunderparentfill", "exclamdown", "executeifdefined", "exists", "exitloop", "exitloopnow", "expandcheckedcsname", "expanded", "expandeddoif", "expandeddoifelse", "expandeddoifnot", "expandfontsynonym", "expdoif", "expdoifcommonelse", "expdoifelse", "expdoifelsecommon", "expdoifelseinset", "expdoifinsetelse", "expdoifnot", "exponentiale", "externalfigure", "externalfigurecollectionmaxheight", "externalfigurecollectionmaxwidth", "externalfigurecollectionminheight", "externalfigurecollectionminwidth", "externalfigurecollectionparameter", "fakebox", "fallingdotseq", "fastdecrement", "fastincrement", "fastlocalframed", "fastloopfinal", "fastloopindex", "fastscale", "fastsetup", "fastsetupwithargument", "fastsetupwithargumentswapped", "fastswitchtobodyfont", "fastsxsy", "feature", "fence", "fenced", "fetchallmarkings", "fetchallmarks", "fetchmark", "fetchmarking", "fetchonemark", "fetchonemarking", "fetchruntinecommand", "fetchtwomarkings", "fetchtwomarks", "ffiligature", "ffligature", "fflligature", "fhook", "field", "fieldbody", "fieldstack", "fifthoffivearguments", "fifthofsixarguments", "figuredash", "figurefilename", "figurefilepath", "figurefiletype", "figurefullname", "figureheight", "figurenaturalheight", "figurenaturalwidth", "figurespace", "figuresymbol", "figurewidth", "filename", "filigature", "filledhboxb", "filledhboxc", "filledhboxg", "filledhboxk", "filledhboxm", "filledhboxr", "filledhboxy", "filler", "fillinline", "fillinrules", "fillintext", "fillupto", "filterfromnext", "filterfromvalue", "filterpages", "filterreference", "findtwopassdata", "finishregisterentry", "firstcharacter", "firstcounter", "firstcountervalue", "firstinlist", "firstoffivearguments", "firstoffourarguments", "firstofoneargument", "firstofoneunexpanded", "firstofsixarguments", "firstofthreearguments", "firstofthreeunexpanded", "firstoftwoarguments", "firstoftwounexpanded", "firstrealpage", "firstrealpagenumber", "firstsubcountervalue", "firstsubpage", "firstsubpagenumber", "firstuserpage", "firstuserpagenumber", "fitfield"!
 , "fitfieldframed", "fittopbaselinegrid", "fiveeighths", "fivesixths", "fixedspace", "fixedspaces", "flag", "flat", "flligature", "floatuserdataparameter", "flushbox", "flushboxregister", "flushcollector", "flushedrightlastline", "flushlayer", "flushlocalfloats", "flushnextbox", "flushnotes", "flushoutputstream", "flushshapebox", "flushtextflow", "flushtokens", "flushtoks", "fontalternative", "fontbody", "fontchar", "fontcharbyindex", "fontclass", "fontclassname", "fontface", "fontfeaturelist", "fontsize", "fontstyle", "footnote", "footnotetext", "forall", "forcecharacterstripping", "forcelocalfloats", "forgeteverypar", "forgetparagraphfreezing", "forgetparameters", "forgetparskip", "forgetparwrapper", "forgetragged", "formula", "formulanumber", "foundbox", "fourfifths", "fourperemspace", "fourthderivativesymbol", "fourthoffivearguments", "fourthoffourarguments", "fourthofsixarguments", "frac", "framed", "frameddimension", "framedparameter", "framedtext", "freezedimenmacro", "freezemeasure", "freezeparagraphproperties", "frenchspacing", "from", "fromlinenote", "frown", "frozenhbox", "frule", "gacute", "gamma", "gbreve", "gcaron", "gcircumflex", "gcommaaccent", "gdefconvertedargument", "gdefconvertedcommand", "gdotaccent", "ge", "geq", "geqq", "geqslant", "getMPdrawing", "getMPlayer", "getboxfromcache", "getboxllx", "getboxlly", "getbuffer", "getbufferdata", "getcommacommandsize", "getcommalistsize", "getdatavalue", "getdayoftheweek", "getdayspermonth", "getdefinedbuffer", "getdocumentargument", "getdocumentargumentdefault", "getdocumentfilename", "getdummyparameters", "getemptyparameters", "geteparameters", "getexpandedparameters", "getfiguredimensions", "getfirstcharacter", "getfirsttwopassdata", "getfromcommacommand", "getfromcommalist", "getfromluatable", "getfromtwopassdata", "getglyphdirect", "getglyphstyled", "getgparameters", "getinlineuserdata", "getlasttwopassdata", "getlocalfloat", "getlocalfloats", "getmarking", "getmessage", "getnamedglyphdirect", "getnamedglyphstyled", "getnamedtwopassdatalist", "ge!
 tnaturaldimensions", "getnoflines", "getobject", "getobjectdimensions", "getpaletsize", "getparameters", "getparwrapper", "getprivatechar", "getprivateslot", "getrandomcount", "getrandomdimen", "getrandomfloat", "getrandomnumber", "getrandomseed", "getraweparameters", "getrawgparameters", "getrawnoflines", "getrawparameters", "getrawxparameters", "getreference", "getreferenceentry", "getroundednoflines", "gets", "getsubstring", "gettokenlist", "gettwopassdata", "gettwopassdatalist", "getuserdata", "getuvalue", "getvalue", "getvariable", "getvariabledefault", "getxparameters", "gg", "ggg", "gggtr", "gimel", "globaldisablemode", "globalenablemode", "globalletempty", "globalpopbox", "globalpopmacro", "globalpreventmode", "globalprocesscommalist", "globalpushbox", "globalpushmacro", "globalswapcounts", "globalswapdimens", "globalswapmacros", "globalundefine", "glyphfontfile", "gnapprox", "gneqq", "gnsim", "gobbledoubleempty", "gobbleeightarguments", "gobblefivearguments", "gobblefiveoptionals", "gobblefourarguments", "gobblefouroptionals", "gobbleninearguments", "gobbleoneargument", "gobbleoneoptional", "gobblesevenarguments", "gobblesingleempty", "gobblesixarguments", "gobblespacetokens", "gobbletenarguments", "gobblethreearguments", "gobblethreeoptionals", "gobbletwoarguments", "gobbletwooptionals", "gobbleuntil", "gobbleuntilrelax", "godown", "goto", "gotobox", "gotopage", "grabbufferdata", "grabbufferdatadirect", "grabuntil", "gradient", "grave", "graycolor", "grayvalue", "greedysplitstring", "greekAlpha", "greekAlphadasia", "greekAlphadasiaperispomeni", "greekAlphadasiatonos", "greekAlphadasiavaria", "greekAlphaiotasub", "greekAlphaiotasubdasia", "greekAlphaiotasubdasiaperispomeni", "greekAlphaiotasubdasiatonos", "greekAlphaiotasubdasiavaria", "greekAlphaiotasubpsili", "greekAlphaiotasubpsiliperispomeni", "greekAlphaiotasubpsilitonos", "greekAlphaiotasubpsilivaria", "greekAlphamacron", "greekAlphapsili", "greekAlphapsiliperispomeni", "greekAlphapsilitonos", "greekAlphapsilivaria", "greekAlphatonos", "greekAlpha!
 varia", "greekAlphavrachy", "greekBeta", "greekChi", "greekCoronis", "greekDelta", "greekEpsilon", "greekEpsilondasia", "greekEpsilondasiatonos", "greekEpsilondasiavaria", "greekEpsilonpsili", "greekEpsilonpsilitonos", "greekEpsilonpsilivaria", "greekEpsilontonos", "greekEpsilonvaria", "greekEta", "greekEtadasia", "greekEtadasiaperispomeni", "greekEtadasiatonos", "greekEtadasiavaria", "greekEtaiotasub", "greekEtaiotasubdasia", "greekEtaiotasubdasiaperispomeni", "greekEtaiotasubdasiatonos", "greekEtaiotasubdasiavaria", "greekEtaiotasubpsili", "greekEtaiotasubpsiliperispomeni", "greekEtaiotasubpsilitonos", "greekEtaiotasubpsilivaria", "greekEtapsili", "greekEtapsiliperispomeni", "greekEtapsilitonos", "greekEtapsilivaria", "greekEtatonos", "greekEtavaria", "greekGamma", "greekIota", "greekIotadasia", "greekIotadasiaperispomeni", "greekIotadasiatonos", "greekIotadasiavaria", "greekIotadialytika", "greekIotamacron", "greekIotapsili", "greekIotapsiliperispomeni", "greekIotapsilitonos", "greekIotapsilivaria", "greekIotatonos", "greekIotavaria", "greekIotavrachy", "greekKappa", "greekLambda", "greekMu", "greekNu", "greekOmega", "greekOmegadasia", "greekOmegadasiaperispomeni", "greekOmegadasiatonos", "greekOmegadasiavaria", "greekOmegaiotasub", "greekOmegaiotasubdasia", "greekOmegaiotasubdasiaperispomeni", "greekOmegaiotasubdasiatonos", "greekOmegaiotasubdasiavaria", "greekOmegaiotasubpsili", "greekOmegaiotasubpsiliperispomeni", "greekOmegaiotasubpsilitonos", "greekOmegaiotasubpsilivaria", "greekOmegapsili", "greekOmegapsiliperispomeni", "greekOmegapsilitonos", "greekOmegapsilivaria", "greekOmegatonos", "greekOmegavaria", "greekOmicron", "greekOmicrondasia", "greekOmicrondasiatonos", "greekOmicrondasiavaria", "greekOmicronpsili", "greekOmicronpsilitonos", "greekOmicronpsilivaria", "greekOmicrontonos", "greekOmicronvaria", "greekPhi", "greekPi", "greekPsi", "greekRho", "greekRhodasia", "greekSigma", "greekSigmalunate", "greekTau", "greekTheta", "greekUpsilon", "greekUpsilondasia", "greekUpsilondasiaperispomeni", "greekUps!
 ilondasiatonos", "greekUpsilondasiavaria", "greekUpsilondialytika", "greekUpsilonmacron", "greekUpsilontonos", "greekUpsilonvaria", "greekUpsilonvrachy", "greekXi", "greekZeta", "greekalpha", "greekalphadasia", "greekalphadasiaperispomeni", "greekalphadasiatonos", "greekalphadasiavaria", "greekalphaiotasub", "greekalphaiotasubdasia", "greekalphaiotasubdasiaperispomeni", "greekalphaiotasubdasiatonos", "greekalphaiotasubdasiavaria", "greekalphaiotasubperispomeni", "greekalphaiotasubpsili", "greekalphaiotasubpsiliperispomeni", "greekalphaiotasubpsilitonos", "greekalphaiotasubpsilivaria", "greekalphaiotasubtonos", "greekalphaiotasubvaria", "greekalphamacron", "greekalphaoxia", "greekalphaperispomeni", "greekalphapsili", "greekalphapsiliperispomeni", "greekalphapsilitonos", "greekalphapsilivaria", "greekalphatonos", "greekalphavaria", "greekalphavrachy", "greekbeta", "greekbetaalt", "greekchi", "greekdasia", "greekdasiaperispomeni", "greekdasiavaria", "greekdelta", "greekdialytikaperispomeni", "greekdialytikatonos", "greekdialytikavaria", "greekdigamma", "greekepsilon", "greekepsilonalt", "greekepsilondasia", "greekepsilondasiatonos", "greekepsilondasiavaria", "greekepsilonoxia", "greekepsilonpsili", "greekepsilonpsilitonos", "greekepsilonpsilivaria", "greekepsilontonos", "greekepsilonvaria", "greeketa", "greeketadasia", "greeketadasiaperispomeni", "greeketadasiatonos", "greeketadasiavaria", "greeketaiotasub", "greeketaiotasubdasia", "greeketaiotasubdasiaperispomeni", "greeketaiotasubdasiatonos", "greeketaiotasubdasiavaria", "greeketaiotasubperispomeni", "greeketaiotasubpsili", "greeketaiotasubpsiliperispomeni", "greeketaiotasubpsilitonos", "greeketaiotasubpsilivaria", "greeketaiotasubtonos", "greeketaiotasubvaria", "greeketaoxia", "greeketaperispomeni", "greeketapsili", "greeketapsiliperispomeni", "greeketapsilitonos", "greeketapsilivaria", "greeketatonos", "greeketavaria", "greekfinalsigma", "greekgamma", "greekiota", "greekiotadasia", "greekiotadasiaperispomeni", "greekiotadasiatonos", "greekiotadasiavaria", "gree!
 kiotadialytika", "greekiotadialytikaperispomeni", "greekiotadialytikatonos", "greekiotadialytikavaria", "greekiotamacron", "greekiotaoxia", "greekiotaperispomeni", "greekiotapsili", "greekiotapsiliperispomeni", "greekiotapsilitonos", "greekiotapsilivaria", "greekiotatonos", "greekiotavaria", "greekiotavrachy", "greekkappa", "greekkoppa", "greeklambda", "greekmu", "greeknu", "greeknumerals", "greeknumkoppa", "greekomega", "greekomegadasia", "greekomegadasiaperispomeni", "greekomegadasiatonos", "greekomegadasiavaria", "greekomegaiotasub", "greekomegaiotasubdasia", "greekomegaiotasubdasiaperispomeni", "greekomegaiotasubdasiatonos", "greekomegaiotasubdasiavaria", "greekomegaiotasubperispomeni", "greekomegaiotasubpsili", "greekomegaiotasubpsiliperispomeni", "greekomegaiotasubpsilitonos", "greekomegaiotasubpsilivaria", "greekomegaiotasubtonos", "greekomegaiotasubvaria", "greekomegaoxia", "greekomegaperispomeni", "greekomegapsili", "greekomegapsiliperispomeni", "greekomegapsilitonos", "greekomegapsilivaria", "greekomegatonos", "greekomegavaria", "greekomicron", "greekomicrondasia", "greekomicrondasiatonos", "greekomicrondasiavaria", "greekomicronoxia", "greekomicronpsili", "greekomicronpsilitonos", "greekomicronpsilivaria", "greekomicrontonos", "greekomicronvaria", "greekoxia", "greekperispomeni", "greekphi", "greekphialt", "greekpi", "greekpialt", "greekprosgegrammeni", "greekpsi", "greekpsili", "greekpsiliperispomeni", "greekpsilivaria", "greekrho", "greekrhoalt", "greekrhodasia", "greekrhopsili", "greeksampi", "greeksigma", "greeksigmalunate", "greekstigma", "greektau", "greektheta", "greekthetaalt", "greektonos", "greekupsilon", "greekupsilondasia", "greekupsilondasiaperispomeni", "greekupsilondasiatonos", "greekupsilondasiavaria", "greekupsilondiaeresis", "greekupsilondialytikaperispomeni", "greekupsilondialytikatonos", "greekupsilondialytikavaria", "greekupsilonmacron", "greekupsilonoxia", "greekupsilonperispomeni", "greekupsilonpsili", "greekupsilonpsiliperispomeni", "greekupsilonpsilitonos", "greekupsilonpsiliv!
 aria", "greekupsilontonos", "greekupsilonvaria", "greekupsilonvrachy", "greekvaria", "greekxi", "greekzeta", "grid", "groupedcommand", "gsetboxllx", "gsetboxlly", "gstroke", "gt", "gtrapprox", "gtrdot", "gtreqless", "gtreqqless", "gtrless", "gtrsim", "guilsingleleft", "guilsingleright", "gujaratinumerals", "gurmurkhinumerals", "hairline", "hairspace", "halflinestrut", "halfstrut", "halfwaybox", "handletokens", "handwritten", "hangul", "hanzi", "hash", "hat", "hbar", "hboxofvbox", "hboxreference", "hcaron", "hcircumflex", "hdofstring", "headhbox", "headlanguage", "headnumber", "headnumbercontent", "headnumberdistance", "headnumberwidth", "headreferenceattributes", "headsetupspacing", "headtext", "headtextcontent", "headtextdistance", "headtexts", "headtextwidth", "headvbox", "headwidth", "heartsuit", "hebrewAlef", "hebrewAyin", "hebrewBet", "hebrewDalet", "hebrewGimel", "hebrewHe", "hebrewHet", "hebrewKaf", "hebrewKaffinal", "hebrewLamed", "hebrewMem", "hebrewMemfinal", "hebrewNun", "hebrewNunfinal", "hebrewPe", "hebrewPefinal", "hebrewQof", "hebrewResh", "hebrewSamekh", "hebrewShin", "hebrewTav", "hebrewTet", "hebrewTsadi", "hebrewTsadifinal", "hebrewVav", "hebrewYod", "hebrewZayin", "hebrewnumerals", "heightanddepthofstring", "heightofstring", "heightspanningtext", "helptext", "hexnumber", "hexstringtonumber", "hglue", "hiddenbar", "hiddencitation", "hiddencite", "hideblocks", "high", "highlight", "highordinalstr", "hilo", "himilo", "hl", "hookleftarrow", "hookrightarrow", "horizontalgrowingbar", "horizontalpositionbar", "hpackbox", "hpackedbox", "hphantom", "hpos", "hsizefraction", "hslash", "hsmash", "hsmashbox", "hsmashed", "hspace", "hstroke", "htdpofstring", "htofstring", "hyphen", "hyphenatedcoloredword", "hyphenatedfile", "hyphenatedfilename", "hyphenatedhbox", "hyphenatedpar", "hyphenatedurl", "hyphenatedword", "iacute", "ibox", "ibreve", "icaron", "icircumflex", "ideographichalffillspace", "ideographicspace", "idiaeresis", "idotaccent", "idotbelow", "idoublegrave", "idxfromluatable", "ifassignment", "i!
 ff", "ifinobject", "ifinoutputstream", "ifparameters", "iftrialtypesetting", "ignoreimplicitspaces", "ignoretagsinexport", "ignorevalue", "igrave", "ihook", "ii", "iiiint", "iiiintop", "iiint", "iiintop", "iint", "iintop", "iinvertedbreve", "ijligature", "imacron", "imaginaryi", "imaginaryj", "imath", "immediatesavetwopassdata", "impliedby", "implies", "imply", "in", "includemenu", "includesvgbuffer", "includesvgfile", "includeversioninfo", "increment", "incrementcounter", "incrementedcounter", "incrementpagenumber", "incrementsubpagenumber", "incrementvalue", "indentation", "index", "infofont", "infofontbold", "inframed", "infty", "infull", "inheritparameter", "inhibitblank", "ininner", "ininneredge", "ininnermargin", "initializeboxstack", "inleft", "inleftedge", "inleftmargin", "inline", "inlinebuffer", "inlinedbox", "inlinemath", "inlinemathematics", "inlinemessage", "inlineordisplaymath", "inlineprettyprintbuffer", "inlinerange", "inmargin", "inmframed", "innerflushshapebox", "inother", "inouter", "inouteredge", "inoutermargin", "input", "inputfilebarename", "inputfilename", "inputfilerealsuffix", "inputfilesuffix", "inputgivenfile", "inright", "inrightedge", "inrightmargin", "insertpages", "inspectluatable", "installactionhandler", "installactivecharacter", "installanddefineactivecharacter", "installattributestack", "installautocommandhandler", "installautosetuphandler", "installbasicautosetuphandler", "installbasicparameterhandler", "installbottomframerenderer", "installcommandhandler", "installcorenamespace", "installctxfunction", "installctxscanner", "installdefinehandler", "installdefinitionset", "installdefinitionsetmember", "installdirectcommandhandler", "installdirectparameterhandler", "installdirectparametersethandler", "installdirectsetuphandler", "installdirectstyleandcolorhandler", "installframedautocommandhandler", "installframedcommandhandler", "installglobalmacrostack", "installlanguage", "installleftframerenderer", "installmacrostack", "installnamespace", "installoutputroutine", "installpagea!
 rrangement", "installparameterhandler", "installparameterhashhandler", "installparametersethandler", "installparentinjector", "installprotectedctxfunction", "installprotectedctxscanner", "installrightframerenderer", "installrootparameterhandler", "installsetuphandler", "installsetuponlycommandhandler", "installshipoutmethod", "installsimplecommandhandler", "installsimpleframedcommandhandler", "installstyleandcolorhandler", "installswitchcommandhandler", "installswitchsetuphandler", "installtexdirective", "installtextracker", "installtopframerenderer", "installunitsseparator", "installunitsspace", "installversioninfo", "int", "intclockwise", "integerrounding", "integers", "interactionbar", "interactionbuttons", "interactionmenu", "intercal", "intertext", "interwordspaceafter", "interwordspacebefore", "interwordspaces", "interwordspacesafter", "interwordspacesbefore", "intop", "invisiblecomma", "invisibleplus", "invisibletimes", "invokepagehandler", "iogonek", "iota", "italic", "italicbold", "italiccorrection", "italicface", "item", "items", "itemtag", "itilde", "jcaron", "jcircumflex", "ji", "jmath", "jobfilename", "jobfilesuffix", "kap", "kappa", "kcaron", "kcommaaccent", "keepblocks", "keeplinestogether", "keepunwantedspaces", "kerncharacters", "khook", "kkra", "koreancirclenumerals", "koreannumerals", "koreannumeralsc", "koreannumeralsp", "koreanparentnumerals", "lVert", "labellanguage", "labeltext", "labeltexts", "lacute", "lambda", "lambdabar", "land", "langle", "language", "languageCharacters", "languagecharacters", "languagecharwidth", "laplace", "lastcounter", "lastcountervalue", "lastdigit", "lastlinewidth", "lastnaturalboxdp", "lastnaturalboxht", "lastnaturalboxwd", "lastparwrapper", "lastpredefinedsymbol", "lastrealpage", "lastrealpagenumber", "lastsubcountervalue", "lastsubpage", "lastsubpagenumber", "lasttwodigits", "lastuserpage", "lastuserpagenumber", "lateluacode", "latin", "layeredtext", "layerheight", "layerwidth", "lazysavetaggedtwopassdata", "lazysavetwopassdata", "lbar", "lbox", "lbrace", "lb!
 racket", "lcaron", "lceil", "lchexnumber", "lchexnumbers", "lcommaaccent", "lcurl", "ldot", "ldotmiddle", "ldotp", "ldots", "le", "leadsto", "left", "leftaligned", "leftarrow", "leftarrowtail", "leftarrowtriangle", "leftbottombox", "leftbox", "leftdasharrow", "leftguillemot", "leftharpoondown", "leftharpoonup", "lefthbox", "leftheadtext", "leftlabeltext", "leftleftarrows", "leftline", "leftmathlabeltext", "leftorrighthbox", "leftorrightvbox", "leftorrightvtop", "leftrightarrow", "leftrightarrows", "leftrightarrowtriangle", "leftrightharpoons", "leftrightsquigarrow", "leftskipadaption", "leftsquigarrow", "leftsubguillemot", "leftthreetimes", "lefttopbox", "lefttoright", "lefttorighthbox", "lefttorightvbox", "lefttorightvtop", "leftwavearrow", "leftwhitearrow", "leq", "leqq", "leqslant", "lessapprox", "lessdot", "lesseqgtr", "lesseqqgtr", "lessgtr", "lesssim", "letbeundefined", "letcatcodecommand", "letcscsname", "letcsnamecs", "letcsnamecsname", "letdummyparameter", "letempty", "letgvalue", "letgvalueempty", "letgvalurelax", "letterampersand", "letterat", "letterbackslash", "letterbar", "letterbgroup", "letterclosebrace", "lettercolon", "letterdollar", "letterdoublequote", "letteregroup", "letterescape", "letterexclamationmark", "letterhash", "letterhat", "letterleftbrace", "letterleftbracket", "letterleftparenthesis", "letterless", "lettermore", "letteropenbrace", "letterpercent", "letterquestionmark", "letterrightbrace", "letterrightbracket", "letterrightparenthesis", "lettersinglequote", "letterslash", "letterspacing", "lettertilde", "letterunderscore", "letvalue", "letvalueempty", "letvaluerelax", "lfence", "lfloor", "lgroup", "lhbox", "lhooknwarrow", "lhooksearrow", "limitatefirstline", "limitatelines", "limitatetext", "line", "linebox", "linefeed", "linefillerhbox", "linefillervbox", "linefillervtop", "linenote", "linespanningtext", "linethickness", "linterval", "listcitation", "listcite", "listlength", "listnamespaces", "literalmode", "ljligature", "ll", "llangle", "llap", "llbracket", "llcorner", "lll", "!
 llless", "llointerval", "lmoustache", "lnapprox", "lneq", "lneqq", "lnot", "lnsim", "loadanyfile", "loadanyfileonce", "loadbtxdefinitionfile", "loadbtxreplacementfile", "loadcldfile", "loadcldfileonce", "loadfontgoodies", "loadluafile", "loadluafileonce", "loadspellchecklist", "loadtexfile", "loadtexfileonce", "loadtypescriptfile", "localframed", "localframedwithsettings", "localhsize", "localpopbox", "localpopmacro", "localpushbox", "localpushmacro", "localundefine", "locatedfilepath", "locatefilepath", "locfilename", "logo", "lohi", "lointerval", "lomihi", "longleftarrow", "longleftrightarrow", "longmapsfrom", "longmapsto", "longrightarrow", "longrightsquigarrow", "looparrowleft", "looparrowright", "lor", "low", "lowerbox", "lowercased", "lowercasestring", "lowercasing", "lowerleftdoubleninequote", "lowerleftsingleninequote", "lowerrightdoubleninequote", "lowerrightsingleninequote", "lozenge", "lparent", "lrcorner", "lrointerval", "lrtbbox", "lstroke", "lt", "ltimes", "ltop", "ltrhbox", "ltrvbox", "ltrvtop", "luaTeX", "luacode", "luaconditional", "luaenvironment", "luaexpanded", "luaexpr", "luafunction", "luajitTeX", "luamajorversion", "luametaTeX", "luaminorversion", "luaparameterset", "luasetup", "luaversion", "lvert", "m", "mLeftarrow", "mLeftrightarrow", "mRightarrow", "mVert", "mainlanguage", "makecharacteractive", "makerawcommalist", "makestrutofbox", "maltese", "mapfontsize", "maps", "mapsas", "mapsdown", "mapsfrom", "mapsto", "mapsup", "margindata", "margintext", "markcontent", "markedpages", "marking", "markinjector", "markpage", "markreferencepage", "mat", "math", "mathDitalicshape", "mathDuprightshape", "mathampersand", "mathbf", "mathbi", "mathblackboard", "mathbs", "mathdefault", "mathditalicshape", "mathdollar", "mathdouble", "mathduprightshape", "mathematics", "mathfraktur", "mathfunction", "mathhash", "mathhyphen", "mathit", "mathitalic", "mathlabellanguage", "mathlabeltext", "mathlabeltexts", "mathop", "mathover", "mathpercent", "mathrm", "mathscript", "mathsl", "mathss", "mathtext", "mathtext!
 bf", "mathtextbi", "mathtextbs", "mathtextit", "mathtextsl", "mathtexttf", "mathtf", "mathtriplet", "mathtt", "mathunder", "mathupright", "mathword", "mathwordbf", "mathwordbi", "mathwordbs", "mathwordit", "mathwordsl", "mathwordtf", "maxaligned", "mbox", "mcframed", "measure", "measured", "measuredangle", "measuredeq", "medskip", "medspace", "menubutton", "mequal", "message", "mfence", "mframed", "mfunction", "mfunctionlabeltext", "mhbox", "mho", "mhookleftarrow", "mhookrightarrow", "mid", "midaligned", "middle", "middlealigned", "middlebox", "midhbox", "midsubsentence", "minimalhbox", "minus", "minuscolon", "mirror", "mixedcaps", "mkvibuffer", "mleftarrow", "mleftharpoondown", "mleftharpoonup", "mleftrightarrow", "mleftrightharpoons", "mmapsto", "models", "moduleparameter", "molecule", "mono", "monobold", "mononormal", "month", "monthlong", "monthshort", "mp", "mprandomnumber", "mrel", "mrightarrow", "mrightharpoondown", "mrightharpoonup", "mrightleftharpoons", "mrightoverleftarrow", "mtext", "mtriplerel", "mtwoheadleftarrow", "mtwoheadrightarrow", "mu", "multimap", "mvert", "nHdownarrow", "nHuparrow", "nLeftarrow", "nLeftrightarrow", "nRightarrow", "nVDash", "nVdash", "nVleftarrow", "nVleftrightarrow", "nVrightarrow", "nabla", "nacute", "namedheadnumber", "namedstructureheadlocation", "namedstructureuservariable", "namedstructurevariable", "namedtaggedlabeltexts", "napostrophe", "napprox", "napproxEq", "narrownobreakspace", "nasymp", "natural", "naturalhbox", "naturalhpack", "naturalnumbers", "naturaltpack", "naturalvbox", "naturalvcenter", "naturalvpack", "naturalvtop", "naturalwd", "ncaron", "ncommaaccent", "ncong", "ncurl", "ndivides", "ne", "nearrow", "negatecolorbox", "negated", "negativesign", "negemspace", "negenspace", "negthinspace", "neng", "neq", "nequiv", "neswarrow", "newattribute", "newcatcodetable", "newcounter", "newevery", "newfrenchspacing", "newluatable", "newmode", "newsignal", "newsystemmode", "nexists", "nextbox", "nextboxdp", "nextboxht", "nextboxhtdp", "nextboxwd", "nextcounter", "next!
 countervalue", "nextdepth", "nextparagraphs", "nextrealpage", "nextrealpagenumber", "nextsubcountervalue", "nextsubpage", "nextsubpagenumber", "nextuserpage", "nextuserpagenumber", "ngeq", "ngrave", "ngtr", "ngtrless", "ngtrsim", "ni", "nihongo", "nin", "njligature", "nleftarrow", "nleftrightarrow", "nleq", "nless", "nlessgtr", "nlesssim", "nmid", "nni", "nobar", "nobreakspace", "nocap", "nocharacteralign", "nocitation", "nocite", "nodetostring", "noffigurepages", "noflines", "noflinesinbox", "noflocalfloats", "noheaderandfooterlines", "noheightstrut", "nohyphens", "noindentation", "noitem", "nonfrenchspacing", "nonmathematics", "nonvalidassignment", "normal", "normalboldface", "normalframedwithsettings", "normalitalicface", "normalizebodyfontsize", "normalizedfontsize", "normalizefontdepth", "normalizefontheight", "normalizefontline", "normalizefontwidth", "normalizetextdepth", "normalizetextheight", "normalizetextline", "normalizetextwidth", "normalslantedface", "normaltypeface", "nospace", "not", "note", "notesymbol", "notimes", "notin", "notopandbottomlines", "notragged", "nowns", "nparallel", "nprec", "npreccurlyeq", "nrightarrow", "nsim", "nsimeq", "nsqsubseteq", "nsqsupseteq", "nsubset", "nsubseteq", "nsucc", "nsucccurlyeq", "nsupset", "nsupseteq", "ntilde", "ntimes", "ntriangleleft", "ntrianglelefteq", "ntriangleright", "ntrianglerighteq", "nu", "numberofpoints", "numbers", "nvDash", "nvdash", "nvleftarrow", "nvleftrightarrow", "nvrightarrow", "nwarrow", "nwsearrow", "oacute", "obeydepth", "objectdepth", "objectheight", "objectmargin", "objectwidth", "obox", "obreve", "ocaron", "ocircumflex", "ocircumflexacute", "ocircumflexdotbelow", "ocircumflexgrave", "ocircumflexhook", "ocircumflextilde", "octnumber", "octstringtonumber", "odiaeresis", "odiaeresismacron", "odot", "odotaccent", "odotaccentmacron", "odotbelow", "odoublegrave", "oeligature", "offset", "offsetbox", "ograve", "ohm", "ohook", "ohorn", "ohornacute", "ohorndotbelow", "ohorngrave", "ohornhook", "ohorntilde", "ohungarumlaut", "oiiint", "oiint"!
 , "oint", "ointclockwise", "ointctrclockwise", "oinvertedbreve", "omacron", "omega", "omicron", "ominus", "onedigitrounding", "oneeighth", "onefifth", "onehalf", "onequarter", "onesixth", "onesuperior", "onethird", "oogonek", "oogonekmacron", "operatorlanguage", "operatortext", "oplus", "ordfeminine", "ordinaldaynumber", "ordinalstr", "ordmasculine", "ornamenttext", "oslash", "ostroke", "ostrokeacute", "otilde", "otildemacron", "otimes", "outputfilename", "outputstreambox", "outputstreamcopy", "outputstreamunvbox", "outputstreamunvcopy", "over", "overbar", "overbars", "overbartext", "overbarunderbar", "overbrace", "overbracetext", "overbraceunderbrace", "overbracket", "overbrackettext", "overbracketunderbracket", "overlaybutton", "overlaycolor", "overlaydepth", "overlayfigure", "overlayheight", "overlayimage", "overlaylinecolor", "overlaylinewidth", "overlayoffset", "overlayrollbutton", "overlaywidth", "overleftarrow", "overleftharpoondown", "overleftharpoonup", "overleftrightarrow", "overloaderror", "overparent", "overparenttext", "overparentunderparent", "overrightarrow", "overrightharpoondown", "overrightharpoonup", "overset", "overstrike", "overstrikes", "overtwoheadleftarrow", "overtwoheadrightarrow", "owns", "page", "pagearea", "pagebreak", "pagefigure", "pageinjection", "pagenumber", "pagereference", "pagestaterealpage", "pagestaterealpageorder", "paletsize", "paragraphmark", "parallel", "part", "partial", "pdfTeX", "pdfactualtext", "pdfbackendactualtext", "pdfbackendcurrentresources", "pdfbackendsetcatalog", "pdfbackendsetcolorspace", "pdfbackendsetextgstate", "pdfbackendsetinfo", "pdfbackendsetname", "pdfbackendsetpageattribute", "pdfbackendsetpageresource", "pdfbackendsetpagesattribute", "pdfbackendsetpattern", "pdfbackendsetshade", "pdfcolor", "pdfeTeX", "percent", "percentdimen", "periodcentered", "periods", "permitcaretescape", "permitcircumflexescape", "permitspacesbetweengroups", "perp", "persiandecimals", "persiandecimalseparator", "persiannumerals", "persianthousandsseparator", "perthousand", "p!
 hantom", "phantombox", "phi", "phook", "pi", "pickupgroupedcommand", "pitchfork", "placeattachments", "placebookmarks", "placebtxrendering", "placechemical", "placecitation", "placecombinedlist", "placecomments", "placecontent", "placecurrentformulanumber", "placedbox", "placefigure", "placefloat", "placefloatcaption", "placefloatwithsetups", "placefootnotes", "placeformula", "placeframed", "placegraphic", "placeheadnumber", "placeheadtext", "placehelp", "placeholder", "placeindex", "placeinitial", "placeintermezzo", "placelayer", "placelayeredtext", "placelegend", "placelist", "placelistofabbreviations", "placelistofchemicals", "placelistoffigures", "placelistofgraphics", "placelistofintermezzi", "placelistoflogos", "placelistofpublications", "placelistofsorts", "placelistofsynonyms", "placelistoftables", "placelocalfootnotes", "placelocalnotes", "placement", "placenamedfloat", "placenamedformula", "placenotes", "placeongrid", "placeontopofeachother", "placepagenumber", "placepairedbox", "placeparallel", "placerawheaddata", "placerawheadnumber", "placerawheadtext", "placerawlist", "placeregister", "placerenderingwindow", "placesidebyside", "placesubformula", "placetable", "pm", "popattribute", "popmacro", "popmode", "popsystemmode", "position", "positionoverlay", "positionregionoverlay", "positivesign", "postponenotes", "prec", "precapprox", "preccurlyeq", "preceq", "preceqq", "precnapprox", "precneq", "precneqq", "precnsim", "precsim", "predefinedfont", "predefinefont", "predefinesymbol", "prefixedpagenumber", "prefixlanguage", "prefixtext", "prependetoks", "prependgvalue", "prependtocommalist", "prependtoks", "prependtoksonce", "prependvalue", "prerollblank", "presetbtxlabeltext", "presetdocument", "presetfieldsymbols", "presetheadtext", "presetlabeltext", "presetmathlabeltext", "presetoperatortext", "presetprefixtext", "presetsuffixtext", "presettaglabeltext", "presetunittext", "pretocommalist", "prettyprintbuffer", "prevcounter", "prevcountervalue", "preventmode", "prevrealpage", "prevrealpagenumber", "prev!
 subcountervalue", "prevsubpage", "prevsubpagenumber", "prevuserpage", "prevuserpagenumber", "prime", "primes", "procent", "processMPbuffer", "processMPfigurefile", "processaction", "processallactionsinset", "processassignlist", "processassignmentcommand", "processassignmentlist", "processbetween", "processblocks", "processbodyfontenvironmentlist", "processcolorcomponents", "processcommacommand", "processcommalist", "processcommalistwithparameters", "processcontent", "processfile", "processfilemany", "processfilenone", "processfileonce", "processfirstactioninset", "processisolatedchars", "processisolatedwords", "processlinetablebuffer", "processlinetablefile", "processlist", "processmonth", "processranges", "processseparatedlist", "processtexbuffer", "processtokens", "processuntil", "processxtablebuffer", "processyear", "prod", "product", "profiledbox", "profilegivenbox", "program", "project", "propto", "pseudoMixedCapped", "pseudoSmallCapped", "pseudoSmallcapped", "pseudosmallcapped", "psi", "punctuationspace", "purenumber", "pushattribute", "pushbutton", "pushmacro", "pushmode", "pushoutputstream", "pushsystemmode", "putboxincache", "putnextboxincache", "qquad", "quad", "quadrupleprime", "quads", "quarterstrut", "questiondown", "questionedeq", "quitcommalist", "quitprevcommalist", "quittypescriptscanning", "quotation", "quote", "quotedbl", "quotedblbase", "quotedblleft", "quotedblright", "quoteleft", "quoteright", "quotesingle", "quotesinglebase", "rVert", "racute", "raggedbottom", "raggedcenter", "raggedleft", "raggedright", "raggedwidecenter", "raisebox", "randomizetext", "randomnumber", "rangle", "rationals", "rawcounter", "rawcountervalue", "rawdate", "rawdoifelseinset", "rawdoifinset", "rawdoifinsetelse", "rawgetparameters", "rawprocessaction", "rawprocesscommacommand", "rawprocesscommalist", "rawstructurelistuservariable", "rawsubcountervalue", "rbox", "rbrace", "rbracket", "rcaron", "rceil", "rcommaaccent", "rdoublegrave", "readfile", "readfixfile", "readjobfile", "readlocfile", "readsetfile", "readsysfi!
 le", "readtexfile", "readxmlfile", "realSmallCapped", "realSmallcapped", "realpagenumber", "reals", "realsmallcapped", "recursedepth", "recurselevel", "recursestring", "redoconvertfont", "ref", "reference", "referencecolumnnumber", "referencepagedetail", "referencepagestate", "referenceprefix", "referencerealpage", "referencesymbol", "referring", "registerattachment", "registerctxluafile", "registered", "registerexternalfigure", "registerfontclass", "registerhyphenationexception", "registerhyphenationpattern", "registermenubuttons", "registerparwrapper", "registerparwrapperreverse", "registersort", "registersynonym", "registerunit", "regular", "relatemarking", "relateparameterhandlers", "relaxvalueifundefined", "relbar", "remainingcharacters", "remark", "removebottomthings", "removedepth", "removefromcommalist", "removelastskip", "removelastspace", "removemarkedcontent", "removepunctuation", "removesubstring", "removetoks", "removeunwantedspaces", "repeathead", "replacefeature", "replaceincommalist", "replaceword", "rescan", "rescanwithsetup", "resetMPdrawing", "resetMPenvironment", "resetMPinstance", "resetallattributes", "resetandaddfeature", "resetbar", "resetboxesincache", "resetbreakpoints", "resetbuffer", "resetcharacteralign", "resetcharacterkerning", "resetcharacterspacing", "resetcharacterstripping", "resetcollector", "resetcounter", "resetctxscanner", "resetdigitsmanipulation", "resetdirection", "resetfeature", "resetflag", "resetfontcolorsheme", "resetfontfallback", "resetfontsolution", "resethyphenationfeatures", "resetinjector", "resetinteractionmenu", "resetitaliccorrection", "resetlayer", "resetlocalfloats", "resetmarker", "resetmarking", "resetmode", "resetpagenumber", "resetparallel", "resetpath", "resetpenalties", "resetperiodkerning", "resetprofile", "resetrecurselevel", "resetreference", "resetreplacements", "resetscript", "resetsetups", "resetshownsynonyms", "resetsubpagenumber", "resetsymbolset", "resetsystemmode", "resettimer", "resettokenlist", "resettrackers", "resettrialtypesetting", "r!
 esetusedsortings", "resetusedsynonyms", "resetuserpagenumber", "resetvalue", "resetvisualizers", "reshapebox", "resolvedglyphdirect", "resolvedglyphstyled", "restartcounter", "restorebox", "restorecatcodes", "restorecounter", "restorecurrentattributes", "restoreendofline", "restoreglobalbodyfont", "restriction", "retestfeature", "reusableMPgraphic", "reuseMPgraphic", "reuserandomseed", "reverseddoubleprime", "reversedprime", "reversedtripleprime", "reversehbox", "reversehpack", "reversetpack", "reversevbox", "reversevboxcontent", "reversevpack", "reversevtop", "revivefeature", "rfence", "rfloor", "rgroup", "rhbox", "rho", "rhooknearrow", "rhookswarrow", "right", "rightaligned", "rightangle", "rightarrow", "rightarrowbar", "rightarrowtail", "rightarrowtriangle", "rightbottombox", "rightbox", "rightdasharrow", "rightguillemot", "rightharpoondown", "rightharpoonup", "righthbox", "rightheadtext", "rightlabeltext", "rightleftarrows", "rightleftharpoons", "rightline", "rightmathlabeltext", "rightorleftpageaction", "rightpageorder", "rightrightarrows", "rightskipadaption", "rightsquigarrow", "rightsubguillemot", "rightthreearrows", "rightthreetimes", "righttoleft", "righttolefthbox", "righttoleftvbox", "righttoleftvtop", "righttopbox", "rightwavearrow", "rightwhitearrow", "ring", "rinterval", "rinvertedbreve", "risingdotseq", "rlap", "rlointerval", "rmoustache", "rneq", "robustaddtocommalist", "robustdoifelseinset", "robustdoifinsetelse", "robustpretocommalist", "rointerval", "rollbutton", "roman", "romanC", "romanD", "romanI", "romanII", "romanIII", "romanIV", "romanIX", "romanL", "romanM", "romanV", "romanVI", "romanVII", "romanVIII", "romanX", "romanXI", "romanXII", "romanc", "romand", "romani", "romanii", "romaniii", "romaniv", "romanix", "romanl", "romanm", "romannumerals", "romanv", "romanvi", "romanvii", "romanviii", "romanx", "romanxi", "romanxii", "rootradical", "rotate", "rparent", "rrangle", "rrbracket", "rrointerval", "rtimes", "rtlhbox", "rtlvbox", "rtlvtop", "rtop", "ruby", "ruledhbox", "ruledhpack", "rul!
 edmbox", "ruledtopv", "ruledtpack", "ruledvbox", "ruledvpack", "ruledvtop", "runMPbuffer", "runninghbox", "russianNumerals", "russiannumerals", "rvert", "sacute", "safechar", "samplefile", "sans", "sansbold", "sansnormal", "sansserif", "savebox", "savebtxdataset", "savebuffer", "savecounter", "savecurrentattributes", "savenormalmeaning", "savetaggedtwopassdata", "savetwopassdata", "sbox", "scalarproduct", "scale", "scaron", "scedilla", "schwa", "schwahook", "scircumflex", "scommaaccent", "screen", "searrow", "secondderivativesymbol", "secondoffivearguments", "secondoffourarguments", "secondofsixarguments", "secondofthreearguments", "secondofthreeunexpanded", "secondoftwoarguments", "secondoftwounexpanded", "section", "sectionmark", "seeindex", "select", "selectblocks", "serializecommalist", "serializedcommalist", "serif", "serifbold", "serifnormal", "setJSpreamble", "setMPlayer", "setMPpositiongraphic", "setMPpositiongraphicrange", "setMPtext", "setMPvariable", "setMPvariables", "setautopagestaterealpageno", "setbar", "setbigbodyfont", "setboxllx", "setboxlly", "setbreakpoints", "setcapstrut", "setcatcodetable", "setcharacteralign", "setcharacteraligndetail", "setcharactercasing", "setcharactercleaning", "setcharacterkerning", "setcharacterspacing", "setcharacterstripping", "setcharstrut", "setcollector", "setcolormodell", "setcounter", "setcounterown", "setctxluafunction", "setcurrentfontclass", "setdataset", "setdatavalue", "setdefaultpenalties", "setdigitsmanipulation", "setdirection", "setdocumentargument", "setdocumentargumentdefault", "setdocumentfilename", "setdummyparameter", "setelementexporttag", "setemeasure", "setevalue", "setevariable", "setevariables", "setexpansion", "setfirstline", "setfirstpasscharacteralign", "setflag", "setfont", "setfontcolorsheme", "setfontfeature", "setfontsolution", "setfontstrut", "setfractions", "setglobalscript", "setgmeasure", "setgvalue", "setgvariable", "setgvariables", "sethboxregister", "sethyphenatedurlafter", "sethyphenatedurlbefore", "sethyphenatedurlnormal", "s!
 ethyphenationfeatures", "setinitial", "setinjector", "setinteraction", "setinterfacecommand", "setinterfaceconstant", "setinterfaceelement", "setinterfacemessage", "setinterfacevariable", "setinternalrendering", "setitaliccorrection", "setlayer", "setlayerframed", "setlayertext", "setlinefiller", "setlocalhsize", "setlocalscript", "setluatable", "setmainbodyfont", "setmainparbuilder", "setmarker", "setmarking", "setmathstyle", "setmeasure", "setmessagetext", "setminus", "setmode", "setnostrut", "setnote", "setnotetext", "setobject", "setoldstyle", "setpagereference", "setpagestate", "setpagestaterealpageno", "setparagraphfreezing", "setpenalties", "setpercentdimen", "setperiodkerning", "setposition", "setpositionbox", "setpositiondata", "setpositiondataplus", "setpositiononly", "setpositionplus", "setpositionstrut", "setprofile", "setrandomseed", "setreference", "setreferencedobject", "setregisterentry", "setreplacements", "setrigidcolumnbalance", "setrigidcolumnhsize", "setscript", "setsecondpasscharacteralign", "setsectionblock", "setsimplecolumnshsize", "setsmallbodyfont", "setsmallcaps", "setstackbox", "setstructurepageregister", "setstrut", "setsuperiors", "setsystemmode", "settabular", "settaggedmetadata", "settestcrlf", "settextcontent", "settightobject", "settightreferencedobject", "settightstrut", "settightunreferencedobject", "settokenlist", "settrialtypesetting", "setuevalue", "setugvalue", "setunreferencedobject", "setup", "setupMPgraphics", "setupMPinstance", "setupMPpage", "setupMPvariables", "setupTABLE", "setupTEXpage", "setupalign", "setupalternativestyles", "setuparranging", "setupattachment", "setupattachments", "setupbackend", "setupbackground", "setupbackgrounds", "setupbar", "setupbars", "setupblackrules", "setupblank", "setupbleeding", "setupblock", "setupbodyfont", "setupbodyfontenvironment", "setupbookmark", "setupbottom", "setupbottomtexts", "setupbtx", "setupbtxdataset", "setupbtxlabeltext", "setupbtxlist", "setupbtxregister", "setupbtxrendering", "setupbuffer", "setupbutton", "setupca!
 pitals", "setupcaption", "setupcaptions", "setupcharacteralign", "setupcharacterkerning", "setupcharacterspacing", "setupchemical", "setupchemicalframed", "setupclipping", "setupcollector", "setupcolor", "setupcolors", "setupcolumns", "setupcolumnset", "setupcolumnsetarea", "setupcolumnsetareatext", "setupcolumnsetlines", "setupcolumnsetspan", "setupcolumnsetstart", "setupcombination", "setupcombinedlist", "setupcomment", "setupcontent", "setupcounter", "setupdataset", "setupdelimitedtext", "setupdescription", "setupdescriptions", "setupdirections", "setupdocument", "setupeffect", "setupenumeration", "setupenumerations", "setupenv", "setupexpansion", "setupexport", "setupexternalfigure", "setupexternalfigures", "setupexternalsoundtracks", "setupfacingfloat", "setupfield", "setupfieldbody", "setupfieldcategory", "setupfieldcontentframed", "setupfieldlabelframed", "setupfields", "setupfieldtotalframed", "setupfiller", "setupfillinlines", "setupfillinrules", "setupfirstline", "setupfittingpage", "setupfloat", "setupfloatframed", "setupfloats", "setupfloatsplitting", "setupfontexpansion", "setupfontprotrusion", "setupfonts", "setupfontsolution", "setupfooter", "setupfootertexts", "setupfootnotes", "setupforms", "setupformula", "setupformulae", "setupformulaframed", "setupframed", "setupframedcontent", "setupframedtable", "setupframedtablecolumn", "setupframedtablerow", "setupframedtext", "setupframedtexts", "setupglobalreferenceprefix", "setuphead", "setupheadalternative", "setupheader", "setupheadertexts", "setupheadnumber", "setupheads", "setupheadtext", "setuphelp", "setuphigh", "setuphighlight", "setuphyphenation", "setuphyphenmark", "setupindentedtext", "setupindenting", "setupindex", "setupinitial", "setupinsertion", "setupinteraction", "setupinteractionbar", "setupinteractionmenu", "setupinteractionscreen", "setupinterlinespace", "setupitaliccorrection", "setupitemgroup", "setupitemizations", "setupitemize", "setupitems", "setuplabel", "setuplabeltext", "setuplanguage", "setuplayer", "setuplayeredtext", "setu!
 playout", "setuplayouttext", "setuplegend", "setuplinefiller", "setuplinefillers", "setuplinenote", "setuplinenumbering", "setuplines", "setuplinetable", "setuplinewidth", "setuplist", "setuplistalternative", "setuplistextra", "setuplocalfloats", "setuplocalinterlinespace", "setuplow", "setuplowhigh", "setuplowmidhigh", "setupmakeup", "setupmarginblock", "setupmargindata", "setupmarginframed", "setupmarginrule", "setupmarginrules", "setupmarking", "setupmathalignment", "setupmathcases", "setupmathematics", "setupmathfence", "setupmathfraction", "setupmathfractions", "setupmathframed", "setupmathlabeltext", "setupmathmatrix", "setupmathornament", "setupmathradical", "setupmathstackers", "setupmathstyle", "setupmixedcolumns", "setupmodule", "setupmulticolumns", "setupnarrower", "setupnotation", "setupnotations", "setupnote", "setupnotes", "setupoffset", "setupoffsetbox", "setupoperatortext", "setupoppositeplacing", "setuporientation", "setupoutput", "setupoutputroutine", "setuppagechecker", "setuppagecolumns", "setuppagecomment", "setuppageinjection", "setuppageinjectionalternative", "setuppagenumber", "setuppagenumbering", "setuppageshift", "setuppagestate", "setuppagetransitions", "setuppairedbox", "setuppalet", "setuppaper", "setuppapersize", "setupparagraph", "setupparagraphintro", "setupparagraphnumbering", "setupparagraphs", "setupparallel", "setupperiodkerning", "setupperiods", "setupplaceholder", "setupplacement", "setuppositionbar", "setuppositioning", "setupprefixtext", "setupprocessor", "setupprofile", "setupprograms", "setupquotation", "setupquote", "setuprealpagenumber", "setupreferenceformat", "setupreferenceprefix", "setupreferencestructureprefix", "setupreferencing", "setupregister", "setupregisters", "setuprenderingwindow", "setuprotate", "setupruby", "setups", "setupscale", "setupscript", "setupscripts", "setupsectionblock", "setupselector", "setupshift", "setupsidebar", "setupsorting", "setupspacing", "setupspellchecking", "setupstartstop", "setupstretched", "setupstrut", "setupstyle", "setupsub!
 formula", "setupsubformulas", "setupsubpagenumber", "setupsuffixtext", "setupsymbols", "setupsymbolset", "setupsynctex", "setupsynonyms", "setupsystem", "setuptables", "setuptabulate", "setuptagging", "setuptaglabeltext", "setuptext", "setuptextbackground", "setuptextflow", "setuptextnote", "setuptextrules", "setuptexttexts", "setupthinrules", "setuptolerance", "setuptooltip", "setuptop", "setuptoptexts", "setuptype", "setuptyping", "setupunit", "setupunittext", "setupurl", "setupuserdata", "setupuserdataalternative", "setupuserpagenumber", "setupversion", "setupviewerlayer", "setupvspacing", "setupwhitespace", "setupwithargument", "setupwithargumentswapped", "setupxml", "setupxtable", "setuvalue", "setuxvalue", "setvalue", "setvariable", "setvariables", "setvboxregister", "setvisualizerfont", "setvtopregister", "setwidthof", "setxmeasure", "setxvalue", "setxvariable", "setxvariables", "seveneighths", "sfrac", "shapedhbox", "sharp", "shiftbox", "shiftdown", "shiftup", "showallmakeup", "showattributes", "showbodyfont", "showbodyfontenvironment", "showboxes", "showbtxdatasetauthors", "showbtxdatasetcompleteness", "showbtxdatasetfields", "showbtxfields", "showbtxhashedauthors", "showbtxtables", "showchardata", "showcharratio", "showcolor", "showcolorbar", "showcolorcomponents", "showcolorgroup", "showcolorset", "showcolorstruts", "showcounter", "showdirectives", "showdirsinmargin", "showedebuginfo", "showexperiments", "showfont", "showfontdata", "showfontexpansion", "showfontitalics", "showfontkerns", "showfontparameters", "showfontstrip", "showfontstyle", "showframe", "showglyphdata", "showglyphs", "showgrid", "showgridsnapping", "showhelp", "showhyphenationtrace", "showhyphens", "showinjector", "showjustification", "showkerning", "showlayout", "showlayoutcomponents", "showligature", "showligatures", "showlogcategories", "showluatables", "showmakeup", "showmargins", "showmessage", "showminimalbaseline", "shownextbox", "showotfcomposition", "showpalet", "showparentchain", "showparwrapperstate", "showprint", "showse!
 tups", "showsetupsdefinition", "showstruts", "showsymbolset", "showtimer", "showtokens", "showtrackers", "showvalue", "showvariable", "showwarning", "sigma", "signalrightpage", "sim", "simeq", "simplealignedbox", "simplealignedboxplus", "simplealignedspreadbox", "simplegroupedcommand", "simplereversealignedbox", "simplereversealignedboxplus", "singalcharacteralign", "singlebond", "singleverticalbar", "sixperemspace", "sixthofsixarguments", "slanted", "slantedbold", "slantedface", "slash", "slicepages", "slong", "slovenianNumerals", "sloveniannumerals", "small", "smallbodyfont", "smallbold", "smallbolditalic", "smallboldslanted", "smallcappedcharacters", "smallcappedromannumerals", "smallcaps", "smaller", "smallitalicbold", "smallnormal", "smallskip", "smallslanted", "smallslantedbold", "smalltype", "smash", "smashbox", "smashboxed", "smashedhbox", "smashedvbox", "smile", "snaptogrid", "softhyphen", "solidus", "someheadnumber", "somekindoftab", "someline", "somelocalfloat", "somenamedheadnumber", "someplace", "somewhere", "space", "spaceddigits", "spaceddigitsmethod", "spaceddigitsseparator", "spaceddigitssymbol", "spadesuit", "spanishNumerals", "spanishnumerals", "speech", "sphericalangle", "splitatasterisk", "splitatcolon", "splitatcolons", "splitatcomma", "splitatperiod", "splitdfrac", "splitfilename", "splitfloat", "splitfrac", "splitoffbase", "splitofffull", "splitoffkind", "splitoffname", "splitoffpath", "splitoffroot", "splitofftokens", "splitofftype", "splitstring", "spreadhbox", "sqcap", "sqcup", "sqrt", "sqsubset", "sqsubseteq", "sqsubsetneq", "sqsupset", "sqsupseteq", "sqsupsetneq", "square", "squaredots", "ssharp", "stackrel", "stackscripts", "star", "stareq", "startJScode", "startJSpreamble", "startLUA", "startMP", "startMPclip", "startMPcode", "startMPdefinitions", "startMPdrawing", "startMPenvironment", "startMPextensions", "startMPinclusions", "startMPinitializations", "startMPpage", "startMPpositiongraphic", "startMPpositionmethod", "startMPrun", "startPARSEDXML", "startTABLE", "startTABLEbody", !
 "startTABLEfoot", "startTABLEhead", "startTABLEnested", "startTABLEnext", "startTC", "startTD", "startTDs", "startTEX", "startTEXpage", "startTH", "startTN", "startTR", "startTRs", "startTX", "startTY", "startXML", "startalign", "startalignment", "startallmodes", "startappendices", "startarrangedpages", "startasciimode", "startaside", "startattachment", "startbackground", "startbackmatter", "startbar", "startbbordermatrix", "startbitmapimage", "startblockquote", "startbodymatter", "startbordermatrix", "startboxedcolumns", "startbtxlabeltext", "startbtxrenderingdefinitions", "startbuffer", "startcases", "startcatcodetable", "startcenteraligned", "startchapter", "startcharacteralign", "startcheckedfences", "startchemical", "startchemicaltext", "startcollect", "startcollecting", "startcolor", "startcolorintent", "startcoloronly", "startcolorset", "startcolumns", "startcolumnset", "startcolumnsetspan", "startcombination", "startcomment", "startcomponent", "startcontextcode", "startcontextdefinitioncode", "startctxfunction", "startctxfunctiondefinition", "startcurrentcolor", "startcurrentlistentrywrapper", "startdelimited", "startdelimitedtext", "startdisplaymath", "startdmath", "startdocument", "starteffect", "startelement", "startembeddedxtable", "startendnote", "startendofline", "startenvironment", "startexceptions", "startexpanded", "startexpandedcollect", "startextendedcatcodetable", "startexternalfigurecollection", "startfacingfloat", "startfact", "startfigure", "startfiguretext", "startfittingpage", "startfixed", "startfloatcombination", "startfont", "startfontclass", "startfontsolution", "startfootnote", "startformula", "startformulas", "startframed", "startframedcell", "startframedcontent", "startframedrow", "startframedtable", "startframedtext", "startfrontmatter", "startgoto", "startgraphictext", "startgridsnapping", "starthanging", "starthbox", "starthboxestohbox", "starthboxregister", "starthead", "startheadtext", "starthelptext", "starthiding", "starthighlight", "starthyphenation", "startimath", "starti!
 ndentation", "startindentedtext", "startinteraction", "startinteractionmenu", "startinterface", "startintermezzotext", "startintertext", "startitem", "startitemgroup", "startitemgroupcolumns", "startitemize", "startknockout", "startlabeltext", "startlanguage", "startlayout", "startleftaligned", "startlegend", "startline", "startlinealignment", "startlinecorrection", "startlinefiller", "startlinenote", "startlinenumbering", "startlines", "startlinetable", "startlinetablebody", "startlinetablecell", "startlinetablehead", "startlocalfootnotes", "startlocalheadsetup", "startlocallinecorrection", "startlocalnotes", "startlocalsetups", "startlua", "startluacode", "startluaparameterset", "startluasetups", "startmakeup", "startmarginblock", "startmarginrule", "startmarkedcontent", "startmarkpages", "startmathalignment", "startmathcases", "startmathlabeltext", "startmathmatrix", "startmathmode", "startmathstyle", "startmatrices", "startmatrix", "startmaxaligned", "startmdformula", "startmidaligned", "startmiddlealigned", "startmiddlemakeup", "startmixedcolumns", "startmode", "startmodeset", "startmodule", "startmoduletestsection", "startmpformula", "startmulticolumns", "startnamedsection", "startnamedsubformulas", "startnarrow", "startnarrower", "startnegative", "startnicelyfilledbox", "startnointerference", "startnotallmodes", "startnotext", "startnotmode", "startoperatortext", "startopposite", "startoutputstream", "startoverlay", "startoverprint", "startpacked", "startpagecolumns", "startpagecomment", "startpagefigure", "startpagelayout", "startpagemakeup", "startpar", "startparagraph", "startparagraphs", "startparagraphscell", "startparbuilder", "startpart", "startpath", "startplacechemical", "startplacefigure", "startplacefloat", "startplaceformula", "startplacegraphic", "startplaceintermezzo", "startplacelegend", "startplacepairedbox", "startplacetable", "startpositioning", "startpositionoverlay", "startpositive", "startpostponing", "startpostponingnotes", "startprefixtext", "startprocessassignmentcommand", "startpr!
 ocessassignmentlist", "startprocesscommacommand", "startprocesscommalist", "startproduct", "startproject", "startprotect", "startprotectedcolors", "startpublication", "startpunctuation", "startquotation", "startquote", "startrandomized", "startrandomseed", "startrawsetups", "startreadingfile", "startreferenceprefix", "startregime", "startregister", "startreusableMPgraphic", "startrightaligned", "startruby", "startscript", "startsdformula", "startsection", "startsectionblock", "startsectionblockenvironment", "startsectionlevel", "startsetups", "startshapebox", "startshift", "startsidebar", "startsimplecolumns", "startspecialitem", "startspeech", "startspformula", "startsplitformula", "startsplittext", "startspread", "startstandardmakeup", "startstaticMPfigure", "startstaticMPgraphic", "startstrictinspectnextcharacter", "startstructurepageregister", "startstrut", "startstyle", "startsubformulas", "startsubject", "startsubjectlevel", "startsubsection", "startsubsentence", "startsubstack", "startsubsubject", "startsubsubsection", "startsubsubsubject", "startsubsubsubsection", "startsubsubsubsubject", "startsubsubsubsubsection", "startsubsubsubsubsubject", "startsuffixtext", "startsymbolset", "starttable", "starttablehead", "starttables", "starttabletail", "starttabletext", "starttabulate", "starttabulatehead", "starttabulatetail", "starttagged", "starttaglabeltext", "starttexcode", "starttexdefinition", "starttext", "starttextbackground", "starttextbackgroundmanual", "starttextcolor", "starttextcolorintent", "starttextflow", "starttextmakeup", "starttextrule", "startthematrix", "starttitle", "starttokenlist", "starttokens", "starttransparent", "starttypescript", "starttypescriptcollection", "starttyping", "startuniqueMPgraphic", "startuniqueMPpagegraphic", "startunittext", "startunpacked", "startusableMPgraphic", "startuseMPgraphic", "startusemathstyleparameter", "startuserdata", "startusingbtxspecification", "startvbox", "startvboxregister", "startvboxtohbox", "startvboxtohboxseparator", "startviewerlayer", "startv!
 top", "startvtopregister", "startxcell", "startxcellgroup", "startxcolumn", "startxgroup", "startxmldisplayverbatim", "startxmlinlineverbatim", "startxmlraw", "startxmlsetups", "startxrow", "startxrowgroup", "startxtable", "startxtablebody", "startxtablefoot", "startxtablehead", "startxtablenext", "stligature", "stopJScode", "stopJSpreamble", "stopLUA", "stopMP", "stopMPclip", "stopMPcode", "stopMPdefinitions", "stopMPdrawing", "stopMPenvironment", "stopMPextensions", "stopMPinclusions", "stopMPinitializations", "stopMPpage", "stopMPpositiongraphic", "stopMPpositionmethod", "stopMPrun", "stopPARSEDXML", "stopTABLE", "stopTABLEbody", "stopTABLEfoot", "stopTABLEhead", "stopTABLEnested", "stopTABLEnext", "stopTC", "stopTD", "stopTDs", "stopTEX", "stopTEXpage", "stopTH", "stopTN", "stopTR", "stopTRs", "stopTX", "stopTY", "stopXML", "stopalign", "stopalignment", "stopallmodes", "stopappendices", "stoparrangedpages", "stopasciimode", "stopaside", "stopattachment", "stopbackground", "stopbackmatter", "stopbar", "stopbbordermatrix", "stopbitmapimage", "stopblockquote", "stopbodymatter", "stopbordermatrix", "stopboxedcolumns", "stopbtxlabeltext", "stopbtxrenderingdefinitions", "stopbuffer", "stopcases", "stopcatcodetable", "stopcenteraligned", "stopchapter", "stopcharacteralign", "stopcheckedfences", "stopchemical", "stopchemicaltext", "stopcollect", "stopcollecting", "stopcolor", "stopcolorintent", "stopcoloronly", "stopcolorset", "stopcolumns", "stopcolumnset", "stopcolumnsetspan", "stopcombination", "stopcomment", "stopcomponent", "stopcontextcode", "stopcontextdefinitioncode", "stopctxfunction", "stopctxfunctiondefinition", "stopcurrentcolor", "stopcurrentlistentrywrapper", "stopdelimited", "stopdelimitedtext", "stopdisplaymath", "stopdmath", "stopdocument", "stopeffect", "stopelement", "stopembeddedxtable", "stopendnote", "stopendofline", "stopenvironment", "stopexceptions", "stopexpanded", "stopexpandedcollect", "stopextendedcatcodetable", "stopexternalfigurecollection", "stopfacingfloat", "stopfact", "stopfigure",!
  "stopfiguretext", "stopfittingpage", "stopfixed", "stopfloatcombination", "stopfont", "stopfontclass", "stopfontsolution", "stopfootnote", "stopformula", "stopformulas", "stopframed", "stopframedcell", "stopframedcontent", "stopframedrow", "stopframedtable", "stopframedtext", "stopfrontmatter", "stopgoto", "stopgraphictext", "stopgridsnapping", "stophanging", "stophbox", "stophboxestohbox", "stophboxregister", "stophead", "stopheadtext", "stophelptext", "stophiding", "stophighlight", "stophyphenation", "stopimath", "stopindentation", "stopindentedtext", "stopinteraction", "stopinteractionmenu", "stopinterface", "stopintermezzotext", "stopintertext", "stopitem", "stopitemgroup", "stopitemgroupcolumns", "stopitemize", "stopknockout", "stoplabeltext", "stoplanguage", "stoplayout", "stopleftaligned", "stoplegend", "stopline", "stoplinealignment", "stoplinecorrection", "stoplinefiller", "stoplinenote", "stoplinenumbering", "stoplines", "stoplinetable", "stoplinetablebody", "stoplinetablecell", "stoplinetablehead", "stoplocalfootnotes", "stoplocalheadsetup", "stoplocallinecorrection", "stoplocalnotes", "stoplocalsetups", "stoplua", "stopluacode", "stopluaparameterset", "stopluasetups", "stopmakeup", "stopmarginblock", "stopmarginrule", "stopmarkedcontent", "stopmarkpages", "stopmathalignment", "stopmathcases", "stopmathlabeltext", "stopmathmatrix", "stopmathmode", "stopmathstyle", "stopmatrices", "stopmatrix", "stopmaxaligned", "stopmdformula", "stopmidaligned", "stopmiddlealigned", "stopmiddlemakeup", "stopmixedcolumns", "stopmode", "stopmodeset", "stopmodule", "stopmoduletestsection", "stopmpformula", "stopmulticolumns", "stopnamedsection", "stopnamedsubformulas", "stopnarrow", "stopnarrower", "stopnegative", "stopnicelyfilledbox", "stopnointerference", "stopnotallmodes", "stopnotext", "stopnotmode", "stopoperatortext", "stopopposite", "stopoutputstream", "stopoverlay", "stopoverprint", "stoppacked", "stoppagecolumns", "stoppagecomment", "stoppagefigure", "stoppagelayout", "stoppagemakeup", "stoppar", "stopparagrap!
 h", "stopparagraphs", "stopparagraphscell", "stopparbuilder", "stoppart", "stoppath", "stopplacechemical", "stopplacefigure", "stopplacefloat", "stopplaceformula", "stopplacegraphic", "stopplaceintermezzo", "stopplacelegend", "stopplacepairedbox", "stopplacetable", "stoppositioning", "stoppositionoverlay", "stoppositive", "stoppostponing", "stoppostponingnotes", "stopprefixtext", "stopprocessassignmentcommand", "stopprocessassignmentlist", "stopprocesscommacommand", "stopprocesscommalist", "stopproduct", "stopproject", "stopprotect", "stopprotectedcolors", "stoppublication", "stoppunctuation", "stopquotation", "stopquote", "stoprandomized", "stoprandomseed", "stoprawsetups", "stopreadingfile", "stopreferenceprefix", "stopregime", "stopreusableMPgraphic", "stoprightaligned", "stopruby", "stopscript", "stopsdformula", "stopsection", "stopsectionblock", "stopsectionblockenvironment", "stopsectionlevel", "stopsetups", "stopshapebox", "stopshift", "stopsidebar", "stopsimplecolumns", "stopspecialitem", "stopspeech", "stopspformula", "stopsplitformula", "stopsplittext", "stopspread", "stopstandardmakeup", "stopstaticMPfigure", "stopstaticMPgraphic", "stopstrictinspectnextcharacter", "stopstrut", "stopstyle", "stopsubformulas", "stopsubject", "stopsubjectlevel", "stopsubsection", "stopsubsentence", "stopsubstack", "stopsubsubject", "stopsubsubsection", "stopsubsubsubject", "stopsubsubsubsection", "stopsubsubsubsubject", "stopsubsubsubsubsection", "stopsubsubsubsubsubject", "stopsuffixtext", "stopsymbolset", "stoptable", "stoptablehead", "stoptables", "stoptabletail", "stoptabletext", "stoptabulate", "stoptabulatehead", "stoptabulatetail", "stoptagged", "stoptaglabeltext", "stoptexcode", "stoptexdefinition", "stoptext", "stoptextbackground", "stoptextbackgroundmanual", "stoptextcolor", "stoptextcolorintent", "stoptextflow", "stoptextmakeup", "stoptextrule", "stopthematrix", "stoptitle", "stoptokenlist", "stoptokens", "stoptransparent", "stoptypescript", "stoptypescriptcollection", "stoptyping", "stopuniqueMPgraphic", "st!
 opuniqueMPpagegraphic", "stopunittext", "stopunpacked", "stopusableMPgraphic", "stopuseMPgraphic", "stopusemathstyleparameter", "stopuserdata", "stopusingbtxspecification", "stopvbox", "stopvboxregister", "stopvboxtohbox", "stopvboxtohboxseparator", "stopviewerlayer", "stopvtop", "stopvtopregister", "stopxcell", "stopxcellgroup", "stopxcolumn", "stopxgroup", "stopxmldisplayverbatim", "stopxmlinlineverbatim", "stopxmlraw", "stopxmlsetups", "stopxrow", "stopxrowgroup", "stopxtable", "stopxtablebody", "stopxtablefoot", "stopxtablehead", "stopxtablenext", "stretched", "strictdoifelsenextoptional", "strictdoifnextoptionalelse", "stripcharacter", "strippedcsname", "stripspaces", "structurelistuservariable", "structurenumber", "structuretitle", "structureuservariable", "structurevariable", "strut", "strutdp", "strutgap", "strutht", "struthtdp", "struttedbox", "strutwd", "style", "styleinstance", "subject", "subpagenumber", "subsection", "subsentence", "subset", "subseteq", "subseteqq", "subsetneq", "subsetneqq", "substituteincommalist", "subsubject", "subsubsection", "subsubsubject", "subsubsubsection", "subsubsubsubject", "subsubsubsubsection", "subsubsubsubsubject", "subtractfeature", "succ", "succapprox", "succcurlyeq", "succeq", "succeqq", "succnapprox", "succneq", "succneqq", "succnsim", "succsim", "suffixlanguage", "suffixtext", "sum", "supset", "supseteq", "supseteqq", "supsetneq", "supsetneqq", "surd", "surdradical", "swapcounts", "swapdimens", "swapface", "swapmacros", "swaptypeface", "swarrow", "switchstyleonly", "switchtobodyfont", "switchtocolor", "switchtointerlinespace", "symbol", "symbolreference", "synchronizeblank", "synchronizeindenting", "synchronizemarking", "synchronizeoutputstreams", "synchronizestrut", "synchronizewhitespace", "synctexblockfilename", "synctexresetfilename", "synctexsetfilename", "systemlog", "systemlogfirst", "systemloglast", "systemsetups", "tLeftarrow", "tLeftrightarrow", "tRightarrow", "tabulateautoline", "tabulateautorule", "tabulateline", "tabulaterule", "taggedctxcommand", !
 "taggedlabeltexts", "taglabellanguage", "taglabeltext", "tau", "tbinom", "tbox", "tcaron", "tcedilla", "tcommaaccent", "tcurl", "tendsto", "tequal", "test", "testandsplitstring", "testcolumn", "testfeature", "testfeatureonce", "testpage", "testpageonly", "testpagesync", "testtokens", "tex", "texdefinition", "texsetup", "textAngstrom", "textacute", "textampersand", "textasciicircum", "textasciitilde", "textat", "textbackslash", "textbar", "textbottomcomma", "textbottomdot", "textbraceleft", "textbraceright", "textbreve", "textbrokenbar", "textbullet", "textcaron", "textcedilla", "textcelsius", "textcent", "textcircledP", "textcircumflex", "textcitation", "textcite", "textcomma", "textcontrolspace", "textcurrency", "textdag", "textddag", "textdegree", "textdiaeresis", "textdiv", "textdollar", "textdong", "textdotaccent", "textellipsis", "texteuro", "textflowcollector", "textfraction", "textgrave", "texthash", "texthorizontalbar", "texthungarumlaut", "texthyphen", "textkelvin", "textlognot", "textmacron", "textmath", "textmho", "textminus", "textmp", "textmu", "textmultiply", "textnumero", "textogonek", "textohm", "textormathchar", "textormathchars", "textounce", "textpercent", "textperiod", "textplus", "textpm", "textreference", "textring", "textrule", "textslash", "textsterling", "texttilde", "textunderscore", "textvisiblespace", "textyen", "thai", "thainumerals", "thedatavalue", "thefirstcharacter", "thematrix", "thenormalizedbodyfontsize", "theorientation", "therefore", "theremainingcharacters", "theta", "thickspace", "thinrule", "thinrules", "thinspace", "thirdderivativesymbol", "thirdoffivearguments", "thirdoffourarguments", "thirdofsixarguments", "thirdofthreearguments", "thirdofthreeunexpanded", "thook", "thookleftarrow", "thookrightarrow", "thorn", "threedigitrounding", "threeeighths", "threefifths", "threeperemspace", "threequarter", "threesuperior", "tibetannumerals", "tightlayer", "tilde", "times", "tinyfont", "title", "tlap", "tleftarrow", "tleftharpoondown", "tleftharpoonup", "tleftrightarrow", "tleft!
 rightharpoons", "tmapsto", "to", "tochar", "tolinenote", "tooltip", "top", "topbox", "topleftbox", "toplinebox", "toprightbox", "topskippedbox", "tracecatcodetables", "tracedfontname", "tracedpagestate", "traceoutputroutines", "tracepositions", "trademark", "translate", "transparencycomponents", "transparent", "transposesymbol", "trel", "triangle", "triangledown", "triangleleft", "triangleq", "triangleright", "trightarrow", "trightharpoondown", "trightharpoonup", "trightleftharpoons", "trightoverleftarrow", "triplebond", "tripleprime", "tripleverticalbar", "truefilename", "truefontname", "tstroke", "ttraggedright", "ttriplerel", "ttwoheadleftarrow", "ttwoheadrightarrow", "turnediota", "twodigitrounding", "twofifths", "twoheaddownarrow", "twoheadleftarrow", "twoheadrightarrow", "twoheadrightarrowtail", "twoheaduparrow", "twosuperior", "twothirds", "tx", "txx", "typ", "type", "typebuffer", "typedefinedbuffer", "typeface", "typefile", "typeinlinebuffer", "typescriptone", "typescriptprefix", "typescriptthree", "typescripttwo", "typesetbuffer", "typesetbufferonly", "typesetfile", "uacute", "ubreve", "ucaron", "uchexnumber", "uchexnumbers", "ucircumflex", "uconvertnumber", "udiaeresis", "udiaeresisacute", "udiaeresiscaron", "udiaeresisgrave", "udiaeresismacron", "udotbelow", "udots", "udoublegrave", "uedcatcodecommand", "ugrave", "uhook", "uhorn", "uhornacute", "uhorndotbelow", "uhorngrave", "uhornhook", "uhorntilde", "uhungarumlaut", "uinvertedbreve", "ulcorner", "umacron", "undefinevalue", "undepthed", "underbar", "underbars", "underbartext", "underbrace", "underbracetext", "underbracket", "underbrackettext", "underdash", "underdashes", "underdot", "underdots", "underleftarrow", "underleftharpoondown", "underleftharpoonup", "underleftrightarrow", "underparent", "underparenttext", "underrandom", "underrandoms", "underrightarrow", "underrightharpoondown", "underrightharpoonup", "underset", "understrike", "understrikes", "undertwoheadleftarrow", "undertwoheadrightarrow", "undoassign", "unexpandeddocumentvariable", "unf!
 ramed", "unhhbox", "unihex", "uniqueMPgraphic", "uniqueMPpagegraphic", "unit", "unitlanguage", "unitshigh", "unitslow", "unittext", "unknown", "unprotected", "unregisterhyphenationpattern", "unregisterparwrapper", "unspaceafter", "unspaceargument", "unspaced", "unspacestring", "unstackscripts", "untexargument", "untexcommand", "uogonek", "upand", "uparrow", "updasharrow", "updateparagraphdemerits", "updateparagraphpenalties", "updateparagraphproperties", "updateparagraphshapes", "updownarrow", "updownarrowbar", "updownarrows", "upharpoonleft", "upharpoonright", "uplus", "uppercased", "uppercasestring", "uppercasing", "upperleftdoubleninequote", "upperleftdoublesixquote", "upperleftsingleninequote", "upperleftsinglesixquote", "upperrightdoubleninequote", "upperrightdoublesixquote", "upperrightsingleninequote", "upperrightsinglesixquote", "upsilon", "upuparrows", "upwhitearrow", "urcorner", "uring", "url", "useJSscripts", "useMPenvironmentbuffer", "useMPgraphic", "useMPlibrary", "useMPrun", "useMPvariables", "useURL", "usealignparameter", "useblankparameter", "useblocks", "usebodyfont", "usebodyfontparameter", "usebtxdataset", "usebtxdefinitions", "usecitation", "usecolors", "usecomponent", "usedirectory", "usedummycolorparameter", "usedummystyleandcolor", "usedummystyleparameter", "useenvironment", "useexternaldocument", "useexternalfigure", "useexternalrendering", "useexternalsoundtrack", "usefigurebase", "usefile", "usefontpath", "usegridparameter", "usehyphensparameter", "useindentingparameter", "useindentnextparameter", "useinterlinespaceparameter", "uselanguageparameter", "useluamodule", "useluatable", "usemathstyleparameter", "usemodule", "useproduct", "useprofileparameter", "useproject", "usereferenceparameter", "userpagenumber", "usesetupsparameter", "usestaticMPfigure", "usesubpath", "usesymbols", "usetexmodule", "usetypescript", "usetypescriptfile", "useurl", "usezipfile", "utfchar", "utflower", "utfupper", "utilde", "utilityregisterlength", "vDash", "validassignment", "varTheta", "varepsilon", "varkapp!
 a", "varnothing", "varphi", "varpi", "varrho", "varsigma", "vartheta", "vboxreference", "vdash", "vdots", "vec", "vee", "veebar", "veeeq", "verbatim", "verbatimstring", "verbosenumber", "version", "vert", "verticalgrowingbar", "verticalpositionbar", "veryraggedcenter", "veryraggedleft", "veryraggedright", "vglue", "viewerlayer", "vl", "vpackbox", "vpackedbox", "vphantom", "vpos", "vsmash", "vsmashbox", "vsmashed", "vspace", "vspacing", "wcircumflex", "wdofstring", "wedge", "wedgeeq", "weekday", "whitearrowupfrombar", "wideacute", "widebar", "widebreve", "widecheck", "wideddot", "widedot", "widegrave", "widehat", "widering", "widetilde", "widthofstring", "widthspanningtext", "withoutpt", "word", "wordright", "words", "wordtonumber", "wp", "wr", "writebetweenlist", "writedatatolist", "writestatus", "writetolist", "xLeftarrow", "xLeftrightarrow", "xRightarrow", "xdefconvertedargument", "xequal", "xfrac", "xhookleftarrow", "xhookrightarrow", "xi", "xleftarrow", "xleftharpoondown", "xleftharpoonup", "xleftrightarrow", "xleftrightharpoons", "xmapsto", "xmladdindex", "xmlafterdocumentsetup", "xmlaftersetup", "xmlall", "xmlappenddocumentsetup", "xmlappendsetup", "xmlapplyselectors", "xmlatt", "xmlattdef", "xmlattribute", "xmlattributedef", "xmlbadinclusions", "xmlbeforedocumentsetup", "xmlbeforesetup", "xmlchainatt", "xmlchainattdef", "xmlchecknamespace", "xmlcommand", "xmlconcat", "xmlconcatrange", "xmlcontext", "xmlcount", "xmldefaulttotext", "xmldepth", "xmldirectives", "xmldirectivesafter", "xmldirectivesbefore", "xmldisplayverbatim", "xmldoif", "xmldoifatt", "xmldoifelse", "xmldoifelseatt", "xmldoifelseempty", "xmldoifelseselfempty", "xmldoifelsetext", "xmldoifelsevalue", "xmldoifnot", "xmldoifnotatt", "xmldoifnotselfempty", "xmldoifnottext", "xmldoifselfempty", "xmldoiftext", "xmlelement", "xmlfilter", "xmlfirst", "xmlflush", "xmlflushcontext", "xmlflushdocumentsetups", "xmlflushlinewise", "xmlflushpure", "xmlflushspacewise", "xmlflushtext", "xmlinclude", "xmlinclusion", "xmlinclusions", "xmlinfo", "xmlinjector", !
 "xmlinlineprettyprint", "xmlinlineprettyprinttext", "xmlinlineverbatim", "xmlinstalldirective", "xmllast", "xmllastatt", "xmllastmatch", "xmllastpar", "xmlloadbuffer", "xmlloaddata", "xmlloaddirectives", "xmlloadfile", "xmlloadonly", "xmlmain", "xmlmapvalue", "xmlname", "xmlnamespace", "xmlnonspace", "xmlpar", "xmlparam", "xmlpath", "xmlpos", "xmlposition", "xmlprependdocumentsetup", "xmlprependsetup", "xmlprettyprint", "xmlprettyprinttext", "xmlprocessbuffer", "xmlprocessdata", "xmlprocessfile", "xmlpure", "xmlraw", "xmlrefatt", "xmlregistereddocumentsetups", "xmlregisteredsetups", "xmlregisterns", "xmlremapname", "xmlremapnamespace", "xmlremovedocumentsetup", "xmlremovesetup", "xmlresetdocumentsetups", "xmlresetinjectors", "xmlresetsetups", "xmlsave", "xmlsetatt", "xmlsetattribute", "xmlsetentity", "xmlsetfunction", "xmlsetinjectors", "xmlsetpar", "xmlsetparam", "xmlsetsetup", "xmlsetup", "xmlshow", "xmlsnippet", "xmlstrip", "xmlstripnolines", "xmlstripped", "xmlstrippednolines", "xmltag", "xmltexentity", "xmltext", "xmltobuffer", "xmltobufferverbose", "xmltofile", "xmlvalue", "xmlverbatim", "xrel", "xrightarrow", "xrightharpoondown", "xrightharpoonup", "xrightleftharpoons", "xrightoverleftarrow", "xsplitstring", "xtriplerel", "xtwoheadleftarrow", "xtwoheadrightarrow", "xxfrac", "xypos", "yacute", "ycircumflex", "ydiaeresis", "ydotbelow", "yen", "ygrave", "yhook", "yiddishnumerals", "ymacron", "ytilde", "zacute", "zcaron", "zdotaccent", "zeronumberconversion", "zerowidthnobreakspace", "zerowidthspace", "zeta", "zhook", "zstroke", "zwj", "zwnj" },
+ ["common"]={ "AEacute", "AEligature", "AEmacron", "AMSTEX", "Aacute", "Abreve", "Abreveacute", "Abrevedotbelow", "Abrevegrave", "Abrevehook", "Abrevetilde", "Acaron", "Acircumflex", "Acircumflexacute", "Acircumflexdotbelow", "Acircumflexgrave", "Acircumflexhook", "Acircumflextilde", "Adiaeresis", "Adiaeresismacron", "Adotaccent", "Adotaccentmacron", "Adotbelow", "Adoublegrave", "AfterPar", "Agrave", "Ahook", "Ainvertedbreve", "Alpha", "Alphabeticnumerals", "AmSTeX", "Amacron", "And", "Angstrom", "Aogonek", "Aring", "Aringacute", "Astroke", "Atilde", "BeforePar", "Beta", "Bhook", "Big", "Bigg", "Biggl", "Biggm", "Biggr", "Bigl", "Bigm", "Bigr", "Box", "Bumpeq", "CONTEXT", "Cacute", "Camel", "Cap", "Caps", "Ccaron", "Ccedilla", "Ccircumflex", "Cdotaccent", "Character", "Characters", "Chi", "Chook", "ConTeXt", "Context", "ConvertConstantAfter", "ConvertToConstant", "Cstroke", "Cup", "DAYLONG", "DAYSHORT", "DZcaronligature", "DZligature", "Dafrican", "Dcaron", "Ddownarrow", "Delta", "Dhook", "Doteq", "Downarrow", "Dstroke", "Dzcaronligature", "Dzligature", "ETEX", "Eacute", "Ebreve", "Ecaron", "Ecedilla", "Ecircumflex", "Ecircumflexacute", "Ecircumflexdotbelow", "Ecircumflexgrave", "Ecircumflexhook", "Ecircumflextilde", "Ediaeresis", "Edotaccent", "Edotbelow", "Edoublegrave", "Egrave", "Ehook", "Einvertedbreve", "Emacron", "Eogonek", "Epsilon", "Eta", "Eth", "Etilde", "Eulerconst", "EveryLine", "EveryPar", "F", "Fhook", "Finv", "Gacute", "Game", "Gamma", "Gbreve", "Gcaron", "Gcircumflex", "Gcommaaccent", "Gdotaccent", "GetPar", "Ghook", "GotoPar", "Greeknumerals", "Gstroke", "Hcaron", "Hcircumflex", "Hstroke", "IJligature", "INRSTEX", "Iacute", "Ibreve", "Icaron", "Icircumflex", "Idiaeresis", "Idotaccent", "Idotbelow", "Idoublegrave", "Igrave", "Ihook", "Iinvertedbreve", "Im", "Imacron", "Iogonek", "Iota", "Istroke", "Itilde", "Jcircumflex", "Join", "Kappa", "Kcaron", "Kcommaaccent", "Khook", "LAMSTEX", "LATEX", "LJligature", "LUAJITTEX", "LUAMETATEX", "LUATEX", "LaTeX", "Lacute", "LamSTeX", "Lambda", "Lba!
 r", "Lcaron", "Lcommaaccent", "Ldotmiddle", "Ldsh", "Leftarrow", "Leftarrowtext", "Leftrightarrow", "Leftrightarrowtext", "Ljligature", "Lleftarrow", "Longleftarrow", "Longleftrightarrow", "Longmapsfrom", "Longmapsto", "Longrightarrow", "Lsh", "Lstroke", "Lua", "LuaMetaTeX", "LuaTeX", "LuajitTeX", "METAFONT", "METAFUN", "METAPOST", "MKII", "MKIV", "MKIX", "MKLX", "MKVI", "MKXI", "MKXL", "MONTH", "MONTHLONG", "MONTHSHORT", "MPII", "MPIV", "MPLX", "MPVI", "MPXL", "MPanchor", "MPbetex", "MPc", "MPcode", "MPcolor", "MPcoloronly", "MPcolumn", "MPd", "MPdrawing", "MPfontsizehskip", "MPgetmultipars", "MPgetmultishape", "MPgetposboxes", "MPh", "MPinclusions", "MPleftskip", "MPll", "MPlr", "MPls", "MPmenubuttons", "MPn", "MPoptions", "MPoverlayanchor", "MPp", "MPpage", "MPpardata", "MPplus", "MPpos", "MPpositiongraphic", "MPposset", "MPr", "MPrawvar", "MPregion", "MPrest", "MPrightskip", "MPrs", "MPstring", "MPtext", "MPtransparency", "MPul", "MPur", "MPv", "MPvar", "MPvariable", "MPvv", "MPw", "MPwhd", "MPx", "MPxy", "MPxywhd", "MPy", "Mapsfrom", "Mapsto", "MetaFont", "MetaFontLogo", "MetaFun", "MetaPost", "MetaPostLogo", "Mu", "NJligature", "Nacute", "Ncaron", "Ncommaaccent", "Nearrow", "Neng", "Ngrave", "Njligature", "NormalizeFontHeight", "NormalizeFontWidth", "NormalizeTextHeight", "NormalizeTextWidth", "Ntilde", "Nu", "Numbers", "Nwarrow", "OEligature", "Oacute", "Obreve", "Ocaron", "Ocircumflex", "Ocircumflexacute", "Ocircumflexdotbelow", "Ocircumflexgrave", "Ocircumflexhook", "Ocircumflextilde", "Odiaeresis", "Odiaeresismacron", "Odotaccent", "Odotaccentmacron", "Odotbelow", "Odoublegrave", "Ograve", "Ohook", "Ohorn", "Ohornacute", "Ohorndotbelow", "Ohorngrave", "Ohornhook", "Ohorntilde", "Ohungarumlaut", "Oinvertedbreve", "Omacron", "Omega", "Omicron", "Oogonek", "Oogonekmacron", "Ostroke", "Ostrokeacute", "Otilde", "Otildemacron", "P", "PDFETEX", "PDFTEX", "PDFcolor", "PICTEX", "PPCHTEX", "PPCHTeX", "PRAGMA", "Periodic", "Phi", "Phook", "Pi", "PiCTeX", "Planckconst", "PointsToBigPoints", "PointsToReal", "Points!
 ToWholeBigPoints", "Pr", "Psi", "PtToCm", "Racute", "Rcaron", "Rcommaaccent", "Rdoublegrave", "Rdsh", "Re", "ReadFile", "Relbar", "Rho", "Rightarrow", "Rightarrowtext", "Rightleftarrowtext", "Rinvertedbreve", "Romannumerals", "Rrightarrow", "Rsh", "S", "Sacute", "ScaledPointsToBigPoints", "ScaledPointsToWholeBigPoints", "Scaron", "Scedilla", "Schwa", "Scircumflex", "Scommaaccent", "Searrow", "Sigma", "Smallcapped", "Subset", "Supset", "Swarrow", "TABLE", "TEX", "TaBlE", "Tau", "Tcaron", "Tcedilla", "Tcommaaccent", "TeX", "TheNormalizedFontSize", "Theta", "Thook", "Thorn", "TransparencyHack", "Tstroke", "Uacute", "Ubreve", "Ucaron", "Ucircumflex", "Udiaeresis", "Udiaeresisacute", "Udiaeresiscaron", "Udiaeresisgrave", "Udiaeresismacron", "Udotbelow", "Udoublegrave", "Ugrave", "Uhook", "Uhorn", "Uhornacute", "Uhorndotbelow", "Uhorngrave", "Uhornhook", "Uhorntilde", "Uhungarumlaut", "Uinvertedbreve", "Umacron", "Uogonek", "Uparrow", "Updownarrow", "Upsilon", "Uring", "Utilde", "Uuparrow", "VDash", "Vdash", "VerboseNumber", "Vert", "Vhook", "Vvdash", "WEEKDAY", "WORD", "WORDS", "Wcircumflex", "WidthSpanningText", "Word", "Words", "XETEX", "XeTeX", "Xi", "Yacute", "Ycircumflex", "Ydiaeresis", "Ydotbelow", "Ygrave", "Yhook", "Ymacron", "Ytilde", "Zacute", "Zcaron", "Zdotaccent", "Zeta", "Zhook", "Zstroke", "aacute", "abbreviation", "abjadnaivenumerals", "abjadnodotnumerals", "abjadnumerals", "about", "abreve", "abreveacute", "abrevedotbelow", "abrevegrave", "abrevehook", "abrevetilde", "acaron", "acircumflex", "acircumflexacute", "acircumflexdotbelow", "acircumflexgrave", "acircumflexhook", "acircumflextilde", "acos", "activatespacehandler", "actualday", "actualmonth", "actualyear", "actuarial", "acute", "acwopencirclearrow", "adaptcollector", "adaptfontfeature", "adaptive", "adaptivebox", "adaptivehbox", "adaptivevbox", "adaptlayout", "adaptpapersize", "addfeature", "addriverstobox", "addtoJSpreamble", "addtocommalist", "addvalue", "adiaeresis", "adiaeresismacron", "adj", "adjoint", "adjointsymbol", "adotaccent", "ado!
 taccentmacron", "adotbelow", "adoublegrave", "aeacute", "aeligature", "aemacron", "afghanicurrency", "aftersplitstring", "aftertestandsplitstring", "agrave", "ahook", "ainvertedbreve", "aleph", "alignbottom", "aligncontentleft", "aligncontentmiddle", "aligncontentright", "aligned", "alignedbox", "alignedline", "alignhere", "alignmentcharacter", "allinputpaths", "alpha", "alphabeticnumerals", "alternate", "alwayscitation", "alwayscite", "amacron", "amalg", "amedian", "ampersand", "anchor", "angle", "annuity", "aodownintc", "aogonek", "aointc", "ap", "appendetoks", "appendgvalue", "appendhiddenbackground", "appendtocommalist", "appendtoks", "appendtoksonce", "appendvalue", "apply", "applyalternativestyle", "applyfunction", "applyfunctionof", "applyprocessor", "applytocharacters", "applytofirstcharacter", "applytosplitstringchar", "applytosplitstringcharspaced", "applytosplitstringline", "applytosplitstringlinespaced", "applytosplitstringword", "applytosplitstringwordspaced", "applytowords", "approx", "approxEq", "approxeq", "approxnEq", "arabicakbar", "arabicalayhe", "arabicallah", "arabicallallahou", "arabicasterisk", "arabicbasmalah", "arabiccomma", "arabiccuberoot", "arabicdateseparator", "arabicdecimals", "arabicdisputedendofayah", "arabicendofayah", "arabicexnumerals", "arabicfootnotemarker", "arabicfourthroot", "arabichighain", "arabichighalayheassallam", "arabichigheqala", "arabichighesala", "arabichighfootnotemarker", "arabichighjeem", "arabichighlamalef", "arabichighmadda", "arabichighmeemlong", "arabichighmeemshort", "arabichighnisf", "arabichighnoon", "arabichighnoonkasra", "arabichighqaf", "arabichighqif", "arabichighradiallahouanhu", "arabichighrahmatullahalayhe", "arabichighrubc", "arabichighsad", "arabichighsajda", "arabichighsakta", "arabichighsallallahou", "arabichighseen", "arabichighsmallsafha", "arabichightah", "arabichightakhallus", "arabichighthalatha", "arabichighwaqf", "arabichighyeh", "arabichighzain", "arabicjallajalalouhou", "arabiclettermark", "arabiclowmeemlong", "arabiclownoonkasra", !
 "arabiclowseen", "arabicmisra", "arabicmuhammad", "arabicnumber", "arabicnumberabove", "arabicnumerals", "arabicparenleft", "arabicparenright", "arabicpercent", "arabicperiod", "arabicpermille", "arabicpertenthousand", "arabicpoeticverse", "arabicqala", "arabicquestion", "arabicrasoul", "arabicray", "arabicrialsign", "arabicsafha", "arabicsajdah", "arabicsalla", "arabicsamvat", "arabicsanah", "arabicsemicolon", "arabicshighthreedots", "arabicslcm", "arabicstartofrubc", "arabictripledot", "arabicvowelwaw", "arabicvowelyeh", "arabicwasallam", "arccos", "arccosh", "arcsin", "arcsinh", "arctan", "arctanh", "arg", "aring", "aringacute", "asciimode", "asciistr", "aside", "asin", "assignalfadimension", "assigndimen", "assigndimension", "assignifempty", "assigntranslation", "assignvalue", "assignwidth", "assumelongusagecs", "ast", "astmarked", "astype", "asymp", "at", "atan", "atilde", "atleftmargin", "atpage", "atrightmargin", "attachment", "autocap", "autodirhbox", "autodirvbox", "autodirvtop", "autoinsertnextspace", "autointegral", "automathematics", "autoorientation", "autopagestaterealpage", "autopagestaterealpageorder", "autorule", "autosetups", "availablehsize", "averagecharwidth", "backepsilon", "background", "backgroundbar", "backgroundimage", "backgroundimagefill", "backgroundline", "backsim", "backslash", "bar", "barint", "barleftarrow", "barleftarrowrightarrowbar", "barmarked", "barovernorthwestarrow", "bartext", "barwedge", "basegrid", "baselinebottom", "baselineleftbox", "baselinemiddlebox", "baselinerightbox", "bbordermatrix", "bbox", "because", "beforesplitstring", "beforetestandsplitstring", "beta", "beth", "between", "bhook", "big", "bigbodyfont", "bigbottom", "bigcap", "bigcirc", "bigcircle", "bigcup", "bigdiamond", "bigdoublevee", "bigdoublewedge", "bigg", "bigger", "biggl", "biggm", "biggr", "bigl", "bigm", "bigodot", "bigoplus", "bigotimes", "bigr", "bigreversesolidus", "bigskip", "bigsolidus", "bigsqcap", "bigsqcup", "bigsquare", "bigstar", "bigtimes", "bigtop", "bigtriangledown", "bigtriangleup",!
  "bigudot", "biguplus", "bigvee", "bigwedge", "binom", "bitmapimage", "blackboardsum", "blacklozenge", "blackrule", "blackrules", "blacksquare", "blacktriangle", "blacktriangledown", "blacktriangleleft", "blacktriangleright", "blank", "blankafter", "blankbefore", "blap", "bleed", "bleedheight", "bleedwidth", "blockligatures", "blockquote", "blocksynctexfile", "blockuservariable", "bmatrix", "bodyfontenvironmentlist", "bodyfontsize", "bold", "boldface", "bolditalic", "boldslanted", "bookmark", "booleanmodevalue", "bordermatrix", "bot", "bottombox", "bottomleftbox", "bottomrightbox", "bowtie", "boxcursor", "boxdot", "boxfixstretch", "boxmarker", "boxminus", "boxofsize", "boxplus", "boxreference", "boxtimes", "bpos", "brace", "bracematrix", "bracket", "breakablethinspace", "breakhere", "breve", "brevemarked", "bstroke", "btxabbreviatedjournal", "btxaddjournal", "btxalwayscitation", "btxauthorfield", "btxdetail", "btxdirect", "btxdoif", "btxdoifcitedoneelse", "btxdoifcombiinlistelse", "btxdoifelse", "btxdoifelsecitedone", "btxdoifelsecombiinlist", "btxdoifelsesameasprevious", "btxdoifelsesameaspreviouschecked", "btxdoifelseuservariable", "btxdoifnot", "btxdoifsameaspreviouscheckedelse", "btxdoifsameaspreviouselse", "btxdoifuservariableelse", "btxexpandedjournal", "btxfield", "btxfieldname", "btxfieldtype", "btxfirstofrange", "btxflush", "btxflushauthor", "btxflushauthorinverted", "btxflushauthorinvertedshort", "btxflushauthorname", "btxflushauthornormal", "btxflushauthornormalshort", "btxflushsuffix", "btxfoundname", "btxfoundtype", "btxhiddencitation", "btxhybridcite", "btxlabellanguage", "btxlabeltext", "btxlistcitation", "btxloadjournalist", "btxoneorrange", "btxrawfield", "btxremapauthor", "btxsavejournalist", "btxsetup", "btxsingularorplural", "btxsingularplural", "btxtextcitation", "buildtextaccent", "buildtextbottomcomma", "buildtextbottomdot", "buildtextcedilla", "buildtextgrave", "buildtextmacron", "buildtextognek", "bullet", "button", "cacute", "calligraphic", "camel", "cap", "capint", "capital", "carriage!
 return", "casing", "catcodetablename", "cbox", "ccaron", "ccedilla", "ccircumflex", "ccurl", "cdot", "cdotaccent", "cdotp", "cdots", "ceiling", "centeraligned", "centerbox", "centeredbox", "centeredlastline", "centerednextbox", "centerline", "cequilibrium", "cfrac", "cgives", "chapter", "character", "characters", "chardescription", "charwidthlanguage", "check", "checkcharacteralign", "checkdelimiters", "checkedblank", "checkedchar", "checkedfiller", "checkedstrippedcsname", "checkinjector", "checkmark", "checkmarked", "checknextindentation", "checknextinjector", "checkpage", "checkparameters", "checkpreviousinjector", "checktwopassdata", "checkvariables", "chem", "chemical", "chemicalbottext", "chemicalmidtext", "chemicalsymbol", "chemicaltext", "chemicaltoptext", "chi", "chineseallnumerals", "chinesecapnumerals", "chinesenumerals", "chook", "circ", "circeq", "circlearrowleft", "circlearrowright", "circledR", "circledS", "circledast", "circledcirc", "circleddash", "circledequals", "circleonrightarrow", "circlepoleinsideintc", "circlepoleoutsideintc", "citation", "cite", "clap", "classfont", "cldcommand", "cldcontext", "cldloadfile", "cldprocessfile", "cleaningleft", "cleaningright", "clearmarking", "clip", "clippedoverlayimage", "clonefield", "clongequilibrium", "clonggives", "clongleaningleft", "clongleaningright", "clongmesomeric", "clongreturns", "closedinterval", "closure", "clubsuit", "cmesomeric", "coker", "collect", "collectedmath", "collectedtext", "collectexpanded", "colon", "coloncolonequals", "colonequals", "color", "colorbar", "colorcomponents", "colored", "coloronly", "colorvalue", "column", "columnbreak", "columnsetspanwidth", "combinepages", "commalistelement", "commalistsentence", "commalistsize", "comment", "comparecolorgroup", "comparedimension", "comparedimensioneps", "comparepalet", "complement", "completebtxrendering", "completecontent", "completeindex", "completelist", "completelistofabbreviations", "completelistofchemicals", "completelistoffigures", "completelistofgraphics", "completelisto!
 fintermezzi", "completelistoflogos", "completelistofpublications", "completelistofsorts", "completelistofsynonyms", "completelistoftables", "completepagenumber", "completeregister", "complexes", "complexorsimple", "complexorsimpleempty", "component", "composedcollector", "composedlayer", "compounddiscretionary", "compresult", "cong", "conjugate", "constantdimen", "constantdimenargument", "constantemptyargument", "constantnumber", "constantnumberargument", "contentreference", "continuednumber", "continueifinputfile", "convertargument", "convertcommand", "convertedcounter", "converteddimen", "convertedsubcounter", "convertmonth", "convertnumber", "convertvalue", "convertvboxtohbox", "convolve", "coprod", "copyboxfromcache", "copybtxlabeltext", "copyfield", "copyheadtext", "copylabeltext", "copymathlabeltext", "copyoperatortext", "copypages", "copyparameters", "copyposition", "copyprefixtext", "copyright", "copysetups", "copysuffixtext", "copytaglabeltext", "copyunittext", "correctwhitespace", "cos", "cosh", "cot", "coth", "countersubs", "counttoken", "counttokens", "cramped", "crampedclap", "crampedllap", "crampedrlap", "creturns", "crlf", "crlfplaceholder", "crossproduct", "csc", "cstroke", "ctop", "ctxcommand", "ctxdirectcommand", "ctxdirectlua", "ctxfunction", "ctxlatecommand", "ctxlatelua", "ctxloadluafile", "ctxlua", "ctxluabuffer", "ctxluacode", "ctxreport", "ctxsprint", "cup", "cupint", "curlyeqprec", "curlyeqsucc", "curlyvee", "curlywedge", "currentassignmentlistkey", "currentassignmentlistvalue", "currentbtxuservariable", "currentcommalistitem", "currentcomponent", "currentdate", "currentenvironment", "currentfeaturetest", "currentheadnumber", "currentinterface", "currentlanguage", "currentlistentrydestinationattribute", "currentlistentrylimitedtext", "currentlistentrynumber", "currentlistentrypagenumber", "currentlistentryreferenceattribute", "currentlistentrytitle", "currentlistentrytitlerendered", "currentlistsymbol", "currentmainlanguage", "currentmessagetext", "currentmoduleparameter", "currentoutput!
 stream", "currentproduct", "currentproject", "currentregime", "currentregisterpageuserdata", "currentresponses", "currenttime", "currentvalue", "currentxtablecolumn", "currentxtablerow", "curvearrowleft", "curvearrowright", "cwopencirclearrow", "cyrillicA", "cyrillicAE", "cyrillicAbreve", "cyrillicAdiaeresis", "cyrillicB", "cyrillicBIGYUS", "cyrillicBIGYUSiotified", "cyrillicC", "cyrillicCH", "cyrillicCHEDC", "cyrillicCHEDCabkhasian", "cyrillicCHEabkhasian", "cyrillicCHEdiaeresis", "cyrillicCHEkhakassian", "cyrillicCHEvertstroke", "cyrillicD", "cyrillicDASIAPNEUMATA", "cyrillicDJE", "cyrillicDZE", "cyrillicDZEabkhasian", "cyrillicDZHE", "cyrillicE", "cyrillicELtail", "cyrillicEMtail", "cyrillicENDC", "cyrillicENGHE", "cyrillicENhook", "cyrillicENtail", "cyrillicEREV", "cyrillicERY", "cyrillicERtick", "cyrillicEbreve", "cyrillicEdiaeresis", "cyrillicEgrave", "cyrillicEiotified", "cyrillicF", "cyrillicFITA", "cyrillicG", "cyrillicGHEmidhook", "cyrillicGHEstroke", "cyrillicGHEupturn", "cyrillicGJE", "cyrillicH", "cyrillicHA", "cyrillicHADC", "cyrillicHRDSN", "cyrillicI", "cyrillicIE", "cyrillicII", "cyrillicISHRT", "cyrillicISHRTtail", "cyrillicIZHITSA", "cyrillicIZHITSAdoublegrave", "cyrillicIdiaeresis", "cyrillicIgrave", "cyrillicImacron", "cyrillicJE", "cyrillicK", "cyrillicKADC", "cyrillicKAbashkir", "cyrillicKAhook", "cyrillicKAstroke", "cyrillicKAvertstroke", "cyrillicKJE", "cyrillicKOPPA", "cyrillicKSI", "cyrillicL", "cyrillicLITTLEYUS", "cyrillicLITTLEYUSiotified", "cyrillicLJE", "cyrillicM", "cyrillicN", "cyrillicNJE", "cyrillicO", "cyrillicOMEGA", "cyrillicOMEGAround", "cyrillicOMEGAtitlo", "cyrillicOT", "cyrillicObarred", "cyrillicObarreddiaeresis", "cyrillicOdiaeresis", "cyrillicP", "cyrillicPALATALIZATION", "cyrillicPALOCHKA", "cyrillicPEmidhook", "cyrillicPSI", "cyrillicPSILIPNEUMATA", "cyrillicR", "cyrillicS", "cyrillicSCHWA", "cyrillicSCHWAdiaeresis", "cyrillicSDSC", "cyrillicSEMISOFT", "cyrillicSFTSN", "cyrillicSH", "cyrillicSHCH", "cyrillicSHHA", "cyrillicT", "cyrillicTEDC", "cyrillicTETSE", "cyri!
 llicTITLO", "cyrillicTSHE", "cyrillicU", "cyrillicUK", "cyrillicUSHRT", "cyrillicUdiaeresis", "cyrillicUdoubleacute", "cyrillicUmacron", "cyrillicV", "cyrillicYA", "cyrillicYAT", "cyrillicYERUdiaeresis", "cyrillicYI", "cyrillicYO", "cyrillicYU", "cyrillicYstr", "cyrillicYstrstroke", "cyrillicZ", "cyrillicZDSC", "cyrillicZEdiaeresis", "cyrillicZH", "cyrillicZHEbreve", "cyrillicZHEdescender", "cyrillicZHEdiaeresis", "cyrillica", "cyrillicabreve", "cyrillicadiaeresis", "cyrillicae", "cyrillicb", "cyrillicbigyus", "cyrillicbigyusiotified", "cyrillicc", "cyrillicch", "cyrilliccheabkhasian", "cyrillicchedc", "cyrillicchedcabkhasian", "cyrillicchediaeresis", "cyrillicchekhakassian", "cyrillicchevertstroke", "cyrillicd", "cyrillicdje", "cyrillicdze", "cyrillicdzeabkhasian", "cyrillicdzhe", "cyrillice", "cyrillicebreve", "cyrillicediaeresis", "cyrillicegrave", "cyrilliceiotified", "cyrilliceltail", "cyrillicemtail", "cyrillicendc", "cyrillicenghe", "cyrillicenhook", "cyrillicentail", "cyrillicerev", "cyrillicertick", "cyrillicery", "cyrillicf", "cyrillicfita", "cyrillicg", "cyrillicghemidhook", "cyrillicghestroke", "cyrillicgheupturn", "cyrillicgje", "cyrillich", "cyrillicha", "cyrillichadc", "cyrillichrdsn", "cyrillici", "cyrillicidiaeresis", "cyrillicie", "cyrillicigrave", "cyrillicii", "cyrillicimacron", "cyrillicishrt", "cyrillicishrttail", "cyrillicizhitsa", "cyrillicizhitsadoublegrave", "cyrillicje", "cyrillick", "cyrillickabashkir", "cyrillickadc", "cyrillickahook", "cyrillickastroke", "cyrillickavertstroke", "cyrillickje", "cyrillickoppa", "cyrillicksi", "cyrillicl", "cyrilliclittleyus", "cyrilliclittleyusiotified", "cyrilliclje", "cyrillicm", "cyrillicn", "cyrillicnje", "cyrillico", "cyrillicobarred", "cyrillicobarreddiaeresis", "cyrillicodiaeresis", "cyrillicomega", "cyrillicomegaround", "cyrillicomegatitlo", "cyrillicot", "cyrillicp", "cyrillicpemidhook", "cyrillicpsi", "cyrillicr", "cyrillics", "cyrillicschwa", "cyrillicschwadiaeresis", "cyrillicsdsc", "cyrillicsemisoft", "cyrillicsftsn", "cyrillicsh", "cyril!
 licshch", "cyrillicshha", "cyrillict", "cyrillictedc", "cyrillictetse", "cyrillictshe", "cyrillicu", "cyrillicudiaeresis", "cyrillicudoubleacute", "cyrillicuk", "cyrillicumacron", "cyrillicushrt", "cyrillicv", "cyrillicya", "cyrillicyat", "cyrillicyerudiaeresis", "cyrillicyi", "cyrillicyo", "cyrillicystr", "cyrillicystrstroke", "cyrillicyu", "cyrillicz", "cyrilliczdsc", "cyrilliczediaeresis", "cyrilliczh", "cyrilliczhebreve", "cyrilliczhedescender", "cyrilliczhediaeresis", "d", "dag", "dagger", "daggermarked", "daleth", "dasharrow", "dashedleftarrow", "dashedrightarrow", "dashv", "datasetvariable", "date", "daylong", "dayoftheweek", "dayshort", "dayspermonth", "dbinom", "dcaron", "dcurl", "ddag", "ddagger", "ddaggermarked", "ddddot", "dddot", "dddotmarked", "ddot", "ddotmarked", "ddots", "decrement", "decrementcounter", "decrementedcounter", "decrementpagenumber", "decrementsubpagenumber", "decrementvalue", "defaultinterface", "defaultobjectpage", "defaultobjectreference", "defcatcodecommand", "defconvertedargument", "defconvertedcommand", "defconvertedvalue", "define", "defineMPinstance", "defineTABLEsetup", "defineaccent", "defineactivecharacter", "defineadaptive", "definealign", "definealternativestyle", "defineanchor", "defineattachment", "defineattribute", "definebackground", "definebar", "defineblock", "definebodyfont", "definebodyfontenvironment", "definebodyfontswitch", "definebreakpoint", "definebreakpoints", "definebtx", "definebtxdataset", "definebtxregister", "definebtxrendering", "definebuffer", "definebutton", "definecapitals", "definecharacter", "definecharacterkerning", "definecharacterspacing", "definechemical", "definechemicals", "definechemicalsymbol", "definecollector", "definecolor", "definecolorgroup", "definecolumnbreak", "definecolumnset", "definecolumnsetarea", "definecolumnsetspan", "definecombination", "definecombinedlist", "definecommand", "definecomment", "definecomplexorsimple", "definecomplexorsimpleempty", "defineconversion", "defineconversionset", "definecounter", "definedataset"!
 , "definedate", "definedelimitedtext", "definedeq", "definedescription", "definedfont", "definedocument", "defineeffect", "defineenumeration", "defineexpandable", "defineexpansion", "defineexternalfigure", "definefacingfloat", "definefallbackfamily", "definefield", "definefieldbody", "definefieldbodyset", "definefieldcategory", "definefieldstack", "definefiguresymbol", "definefileconstant", "definefilefallback", "definefilesynonym", "definefiller", "definefirstline", "definefittingpage", "definefloat", "definefont", "definefontalternative", "definefontfallback", "definefontfamily", "definefontfamilypreset", "definefontfeature", "definefontfile", "definefontsize", "definefontsolution", "definefontstyle", "definefontsynonym", "defineformula", "defineformulaalternative", "defineformulaframed", "defineframed", "defineframedcontent", "defineframedtable", "defineframedtext", "definefrozenfont", "defineglobalcolor", "definegraphictypesynonym", "definegridsnapping", "definehbox", "definehead", "defineheadalternative", "definehelp", "definehigh", "definehighlight", "definehspace", "definehyphenationfeatures", "defineindentedtext", "defineindenting", "defineinitial", "defineinsertion", "defineinteraction", "defineinteractionbar", "defineinteractionmenu", "defineinterfaceconstant", "defineinterfaceelement", "defineinterfacevariable", "defineinterlinespace", "defineintermediatecolor", "defineitemgroup", "defineitems", "definelabel", "definelabelclass", "definelayer", "definelayerpreset", "definelayout", "definelinefiller", "definelinenote", "definelinenumbering", "definelineprofile", "definelines", "definelist", "definelistalternative", "definelistextra", "definelocalboxes", "definelow", "definelowhigh", "definelowmidhigh", "definemakeup", "definemarginblock", "definemargindata", "definemarker", "definemarking", "definemathaccent", "definemathalignment", "definemathbottomaccent", "definemathcases", "definemathcommand", "definemathdelimited", "definemathdelimiter", "definemathdouble", "definemathdoubleaccent", "definemathdou!
 bleextensible", "definemathematics", "definemathextensible", "definemathfence", "definemathfraction", "definemathframed", "definemathfunction", "definemathmatrix", "definemathnesting", "definemathoperator", "definemathornament", "definemathover", "definemathoverextensible", "definemathovertextextensible", "definemathradical", "definemathsimplealign", "definemathstackers", "definemathstyle", "definemathtopaccent", "definemathtriplet", "definemathunder", "definemathunderextensible", "definemathundertextextensible", "definemathunstacked", "definemeasure", "definemessageconstant", "definemixedcolumns", "definemode", "definemulticolumns", "definemultitonecolor", "definenamedcolor", "definenamespace", "definenarrower", "definenote", "defineoptimize", "defineorientation", "defineornament", "defineoutputroutine", "defineoutputroutinecommand", "defineoverlay", "definepage", "definepagebreak", "definepagechecker", "definepagecolumns", "definepageinjection", "definepageinjectionalternative", "definepageshift", "definepagestate", "definepairedbox", "definepalet", "definepapersize", "defineparagraph", "defineparagraphs", "defineparallel", "defineparbuilder", "defineperiodkerning", "defineplaceholder", "defineplacement", "definepositioning", "defineprefixset", "defineprocesscolor", "defineprocessor", "defineprofile", "defineprogram", "definepushbutton", "definepushsymbol", "definereference", "definereferenceformat", "defineregister", "definerenderingwindow", "defineresetset", "defineruby", "definescale", "definescript", "definesection", "definesectionblock", "definesectionlevels", "defineselector", "defineseparatorset", "defineshift", "definesidebar", "definesort", "definesorting", "definespotcolor", "definestacking", "definestartstop", "definestyle", "definestyleinstance", "definesubfield", "definesubformula", "definesymbol", "definesynchronize", "definesynchronizecontent", "definesynonym", "definesynonyms", "definesystemattribute", "definesystemconstant", "definesystemvariable", "definetabletemplate", "definetabulate", "def!
 inetabulatemove", "definetext", "definetextbackground", "definetextdisplay", "definetextflow", "definetextnote", "definetokenlist", "definetooltip", "definetransparency", "definetwopasslist", "definetype", "definetypeface", "definetypescriptprefix", "definetypescriptsynonym", "definetypesetting", "definetyping", "defineunit", "defineuserdata", "defineuserdataalternative", "defineviewerlayer", "definevspace", "definevspacing", "definevspacingamount", "definextable", "defrostparagraphproperties", "deg", "delimited", "delimitedtext", "delta", "depthlinebottom", "depthofstring", "depthonlybox", "depthspanningtext", "depthstrut", "derivative", "derivativesymbol", "det", "determinednoflines", "determineheadnumber", "determinelistcharacteristics", "determinenoflines", "determineregistercharacteristics", "devanagarinumerals", "dfrac", "dhook", "diameter", "diamond", "diamondsuit", "diff", "differentialD", "differentiald", "digamma", "digits", "dim", "dimensiontocount", "directboxfromcache", "directcolor", "directcolored", "directconvertedcounter", "directcopyboxfromcache", "directdummyparameter", "directgetboxllx", "directgetboxlly", "directhighlight", "directlocalframed", "directluacode", "directmathextensible", "directparwrapper", "directselect", "directsetbar", "directsetup", "directsymbol", "directtextextensible", "directvspacing", "dis", "disabledelimiter", "disabledirectives", "disableexperiments", "disablefiller", "disablemode", "disableoutputstream", "disableparpositions", "disableregime", "disabletrackers", "displaymath", "displaymathematics", "displaymessage", "disposeluatable", "distributedhsize", "div", "dividedsize", "divideontimes", "divides", "dm", "doadaptleftskip", "doadaptrightskip", "doaddfeature", "doassign", "doassignempty", "doboundtext", "docheckassignment", "docheckedpair", "documentvariable", "dodoubleargument", "dodoubleargumentwithset", "dodoubleempty", "dodoubleemptywithset", "dodoublegroupempty", "doeassign", "doexpandedrecurse", "doexpandedrecursed", "dofastloopcs", "dogetattribute", "doget!
 attributeid", "dogetcommacommandelement", "dogobbledoubleempty", "dogobblesingleempty", "dohyphens", "doif", "doifMPgraphicelse", "doifallcommon", "doifallcommonelse", "doifalldefinedelse", "doifallmodes", "doifallmodeselse", "doifallundefinedelse", "doifassignmentelse", "doifassignmentelsecs", "doifblackelse", "doifbothsides", "doifbothsidesoverruled", "doifboxelse", "doifbufferelse", "doifcheckedpagestate", "doifcolor", "doifcolorelse", "doifcommandhandler", "doifcommandhandlerelse", "doifcommon", "doifcommonelse", "doifcontent", "doifconversiondefinedelse", "doifconversionnumberelse", "doifcounter", "doifcounterelse", "doifcurrentfonthasfeatureelse", "doifdefined", "doifdefinedcounter", "doifdefinedcounterelse", "doifdefinedelse", "doifdimensionelse", "doifdimenstringelse", "doifdocumentargument", "doifdocumentargumentelse", "doifdocumentfilename", "doifdocumentfilenameelse", "doifdocumentvariable", "doifdocumentvariableelse", "doifdrawingblackelse", "doifelse", "doifelseMPgraphic", "doifelseallcommon", "doifelsealldefined", "doifelseallmodes", "doifelseallundefined", "doifelseassignment", "doifelseassignmentcs", "doifelseblack", "doifelseblocksempty", "doifelsebox", "doifelseboxincache", "doifelsebuffer", "doifelsecolor", "doifelsecommandhandler", "doifelsecommon", "doifelseconversiondefined", "doifelseconversionnumber", "doifelsecounter", "doifelsecurrentfonthasfeature", "doifelsecurrentsortingused", "doifelsecurrentsynonymshown", "doifelsecurrentsynonymused", "doifelsedefined", "doifelsedefinedcounter", "doifelsedimension", "doifelsedimenstring", "doifelsedocumentargument", "doifelsedocumentfilename", "doifelsedocumentvariable", "doifelsedrawingblack", "doifelseempty", "doifelseemptyvalue", "doifelseemptyvariable", "doifelseenv", "doifelsefastoptionalcheck", "doifelsefastoptionalcheckcs", "doifelsefieldbody", "doifelsefieldcategory", "doifelsefigure", "doifelsefile", "doifelsefiledefined", "doifelsefileexists", "doifelsefirstchar", "doifelseflagged", "doifelsefontchar", "doifelsefontfeature", "doifelsefont!
 present", "doifelsefontsynonym", "doifelseframed", "doifelsehasspace", "doifelsehelp", "doifelseincsname", "doifelseindented", "doifelseinelement", "doifelseinputfile", "doifelseinsertion", "doifelseinset", "doifelseinstring", "doifelseinsymbolset", "doifelseintoks", "doifelseintwopassdata", "doifelseitalic", "doifelselanguage", "doifelselayerdata", "doifelselayoutdefined", "doifelselayoutsomeline", "doifelselayouttextline", "doifelseleapyear", "doifelselist", "doifelselocation", "doifelselocfile", "doifelsemainfloatbody", "doifelsemarkedcontent", "doifelsemarkedpage", "doifelsemarking", "doifelsemessage", "doifelsemode", "doifelsenextbgroup", "doifelsenextbgroupcs", "doifelsenextchar", "doifelsenextoptional", "doifelsenextoptionalcs", "doifelsenextparenthesis", "doifelsenonzeropositive", "doifelsenoteonsamepage", "doifelsenothing", "doifelsenumber", "doifelseobjectfound", "doifelseobjectreferencefound", "doifelseoddpage", "doifelseoddpagefloat", "doifelseoldercontext", "doifelseolderversion", "doifelseorientation", "doifelseoverlapping", "doifelseoverlay", "doifelseparallel", "doifelseparentfile", "doifelseparwrapper", "doifelsepath", "doifelsepathexists", "doifelsepatterns", "doifelseposition", "doifelsepositionaction", "doifelsepositiononpage", "doifelsepositionsonsamepage", "doifelsepositionsonthispage", "doifelsepositionsused", "doifelsereferencefound", "doifelserightpage", "doifelserightpagefloat", "doifelserighttoleftinbox", "doifelsesamelinereference", "doifelsesamestring", "doifelsesetups", "doifelsesimilartokens", "doifelsesomebackground", "doifelsesomespace", "doifelsesomething", "doifelsesometoks", "doifelsestringinstring", "doifelsestructurelisthasnumber", "doifelsestructurelisthaspage", "doifelsesymboldefined", "doifelsesymbolset", "doifelsetext", "doifelsetextflow", "doifelsetextflowcollector", "doifelsetopofpage", "doifelsetypingfile", "doifelseundefined", "doifelseurldefined", "doifelsevalue", "doifelsevaluenothing", "doifelsevariable", "doifempty", "doifemptyelse", "doifemptytoks", "doifemptyva!
 lue", "doifemptyvalueelse", "doifemptyvariable", "doifemptyvariableelse", "doifenv", "doifenvelse", "doiffastoptionalcheckcselse", "doiffastoptionalcheckelse", "doiffieldbodyelse", "doiffieldcategoryelse", "doiffigureelse", "doiffile", "doiffiledefinedelse", "doiffileelse", "doiffileexistselse", "doiffirstcharelse", "doifflaggedelse", "doiffontcharelse", "doiffontfeatureelse", "doiffontpresentelse", "doiffontsynonymelse", "doifhasspaceelse", "doifhelpelse", "doifincsnameelse", "doifinelementelse", "doifinputfileelse", "doifinsertionelse", "doifinset", "doifinsetelse", "doifinstring", "doifinstringelse", "doifinsymbolset", "doifinsymbolsetelse", "doifintokselse", "doifintwopassdataelse", "doifitalicelse", "doiflanguageelse", "doiflayerdataelse", "doiflayoutdefinedelse", "doiflayoutsomelineelse", "doiflayouttextlineelse", "doifleapyearelse", "doiflistelse", "doiflocationelse", "doiflocfileelse", "doifmainfloatbodyelse", "doifmarkedpage", "doifmarkingelse", "doifmessageelse", "doifmode", "doifmodeelse", "doifnextbgroupcselse", "doifnextbgroupelse", "doifnextcharelse", "doifnextoptionalcselse", "doifnextoptionalelse", "doifnextparenthesiselse", "doifnonzeropositiveelse", "doifnot", "doifnotallcommon", "doifnotallmodes", "doifnotcommandhandler", "doifnotcommon", "doifnotcounter", "doifnotdocumentargument", "doifnotdocumentfilename", "doifnotdocumentvariable", "doifnotempty", "doifnotemptyvalue", "doifnotemptyvariable", "doifnotenv", "doifnoteonsamepageelse", "doifnotescollected", "doifnotfile", "doifnotflagged", "doifnothing", "doifnothingelse", "doifnotinset", "doifnotinsidesplitfloat", "doifnotinstring", "doifnotmode", "doifnotnumber", "doifnotsamestring", "doifnotsetups", "doifnotvalue", "doifnotvariable", "doifnumber", "doifnumberelse", "doifobjectfoundelse", "doifobjectreferencefoundelse", "doifoddpageelse", "doifoddpagefloatelse", "doifoldercontextelse", "doifolderversionelse", "doifoutervmode", "doifoverlappingelse", "doifoverlayelse", "doifparallelelse", "doifparentfileelse", "doifpathelse", "doifpathexistsel!
 se", "doifpatternselse", "doifposition", "doifpositionaction", "doifpositionactionelse", "doifpositionelse", "doifpositiononpageelse", "doifpositionsonsamepageelse", "doifpositionsonthispageelse", "doifpositionsusedelse", "doifreferencefoundelse", "doifrightpageelse", "doifrightpagefloatelse", "doifrighttoleftinboxelse", "doifsamelinereferenceelse", "doifsamestring", "doifsamestringelse", "doifsetups", "doifsetupselse", "doifsomebackground", "doifsomebackgroundelse", "doifsomespaceelse", "doifsomething", "doifsomethingelse", "doifsometoks", "doifsometokselse", "doifstringinstringelse", "doifstructurelisthasnumberelse", "doifstructurelisthaspageelse", "doifsymboldefinedelse", "doifsymbolsetelse", "doiftext", "doiftextelse", "doiftextflowcollectorelse", "doiftextflowelse", "doiftopofpageelse", "doiftypingfileelse", "doifundefined", "doifundefinedcounter", "doifundefinedelse", "doifunknownfontfeature", "doifurldefinedelse", "doifvalue", "doifvalueelse", "doifvaluenothing", "doifvaluenothingelse", "doifvaluesomething", "doifvariable", "doifvariableelse", "doindentation", "dollar", "doloop", "doloopoverlist", "donothing", "dontconvertfont", "dontleavehmode", "dontpermitspacesbetweengroups", "dopositionaction", "doprocesslocalsetups", "doquadrupleargument", "doquadrupleempty", "doquadruplegroupempty", "doquintupleargument", "doquintupleempty", "doquintuplegroupempty", "dorechecknextindentation", "dorecurse", "dorepeatwithcommand", "doreplacefeature", "doresetandaddfeature", "doresetattribute", "dorotatebox", "dosetattribute", "dosetleftskipadaption", "dosetrightskipadaption", "dosetupcheckedinterlinespace", "doseventupleargument", "doseventupleempty", "dosingleargument", "dosingleempty", "dosinglegroupempty", "dosixtupleargument", "dosixtupleempty", "dosomebreak", "dostepwiserecurse", "dosubtractfeature", "dot", "doteq", "doteqdot", "dotfill", "dotfskip", "dotlessI", "dotlessJ", "dotlessi", "dotlessj", "dotlessjstroke", "dotminus", "dotoks", "dotplus", "dotripleargument", "dotripleargumentwithset", "dotripleempty", "d!
 otripleemptywithset", "dotriplegroupempty", "dots", "dottedcircle", "dottedrightarrow", "doublebar", "doublebarint", "doublebond", "doublebrace", "doublebracket", "doublecap", "doublecup", "doubleparent", "doubleprime", "doubleprimed", "doublereverseprimed", "doubleverticalbar", "dowith", "dowithnextbox", "dowithnextboxcontent", "dowithnextboxcontentcs", "dowithnextboxcs", "dowithpargument", "dowithrange", "dowithwargument", "downarrow", "downdasharrow", "downdownarrows", "downharpoonleft", "downharpoonright", "downuparrows", "downwhitearrow", "downzigzagarrow", "dpofstring", "dstroke", "dtail", "dummydigit", "dummyparameter", "dzcaronligature", "dzligature", "eTeX", "eacute", "ebreve", "ecaron", "ecedilla", "ecircumflex", "ecircumflexacute", "ecircumflexdotbelow", "ecircumflexgrave", "ecircumflexhook", "ecircumflextilde", "edefconvertedargument", "ediaeresis", "edotaccent", "edotbelow", "edoublegrave", "efcmaxheight", "efcmaxwidth", "efcminheight", "efcminwidth", "efcparameter", "effect", "egrave", "ehook", "einvertedbreve", "elapsedseconds", "elapsedsteptime", "elapsedtime", "ell", "em", "emacron", "emdash", "emphasisboldface", "emphasistypeface", "emptylines", "emptyset", "emquad", "emspace", "enableasciimode", "enabledelimiter", "enabledirectives", "enableexperiments", "enablefiller", "enablemode", "enableoutputstream", "enableparpositions", "enableregime", "enabletrackers", "endash", "endnote", "enquad", "enskip", "enspace", "env", "environment", "envvar", "eogonek", "epos", "epsilon", "eq", "eqcirc", "eqeq", "eqeqeq", "eqgtr", "eqless", "eqsim", "eqslantgtr", "eqslantless", "equaldigits", "equalscolon", "equaltext", "equationsystem", "equiv", "erf", "erfc", "erfi", "eta", "eth", "ethiopic", "etilde", "exclamdown", "executeifdefined", "exists", "exitloop", "exitloopnow", "exp", "expandcheckedcsname", "expanded", "expandeddoif", "expandeddoifelse", "expandeddoifnot", "expandfontsynonym", "expdoif", "expdoifcommonelse", "expdoifelse", "expdoifelsecommon", "expdoifelseinset", "expdoifinsetelse", "expdoifnot", !
 "exponentiale", "externalfigure", "externalfigurecollectionmaxheight", "externalfigurecollectionmaxwidth", "externalfigurecollectionminheight", "externalfigurecollectionminwidth", "externalfigurecollectionparameter", "fakebox", "fakeleftdelimiter", "fakerightdelimiter", "fallingdotseq", "fastdecrement", "fastincrement", "fastlocalframed", "fastloopfinal", "fastloopindex", "fastscale", "fastsetup", "fastsetupwithargument", "fastsetupwithargumentswapped", "fastswitchtobodyfont", "fastsxsy", "feature", "fenced", "fetchallmarkings", "fetchallmarks", "fetchmark", "fetchmarking", "fetchonemark", "fetchonemarking", "fetchruntinecommand", "fetchtwomarkings", "fetchtwomarks", "ffiligature", "ffligature", "fflligature", "fhook", "field", "fieldbody", "fieldstack", "fifthoffivearguments", "fifthofsixarguments", "figuredash", "figurefilename", "figurefilepath", "figurefiletype", "figurefullname", "figureheight", "figurenaturalheight", "figurenaturalwidth", "figurespace", "figuresymbol", "figurewidth", "filename", "filigature", "filledhboxb", "filledhboxc", "filledhboxg", "filledhboxk", "filledhboxm", "filledhboxr", "filledhboxy", "filler", "fillinline", "fillinrules", "fillintext", "fillupto", "filterfromnext", "filterfromvalue", "filterlist", "filterpages", "filterreference", "findtwopassdata", "finishregisterentry", "firstcharacter", "firstcounter", "firstcountervalue", "firstinlist", "firstoffivearguments", "firstoffourarguments", "firstofoneargument", "firstofoneunexpanded", "firstofsixarguments", "firstofthreearguments", "firstofthreeunexpanded", "firstoftwoarguments", "firstoftwounexpanded", "firstrealpage", "firstrealpagenumber", "firstsubcountervalue", "firstsubpage", "firstsubpagenumber", "firstuserpage", "firstuserpagenumber", "fitfield", "fitfieldframed", "fittopbaselinegrid", "fiveeighths", "fivesixths", "fixedspace", "fixedspaces", "flag", "flat", "flligature", "floatuserdataparameter", "floor", "flushallmarginblocks", "flushbox", "flushboxregister", "flushcollector", "flushedrightlastline", "flushinitial", "fl!
 ushlayer", "flushlocalfloats", "flushnextbox", "flushnotes", "flushoutputstream", "flushpageblocks", "flushshapebox", "flushtextflow", "flushtokens", "flushtoks", "fontalternative", "fontbody", "fontchar", "fontcharbyindex", "fontclass", "fontclassname", "fontface", "fontfeaturelist", "fontsize", "fontstyle", "footnote", "footnotetext", "forall", "forcecharacterstripping", "forcelocalfloats", "forgeteverypar", "forgetinitial", "forgetparagraphfreezing", "forgetparameters", "forgetparskip", "forgetparwrapper", "forgetragged", "formula", "formulanumber", "foundbox", "fourfifths", "fourperemspace", "fourthderivative", "fourthderivativesymbol", "fourthoffivearguments", "fourthoffourarguments", "fourthofsixarguments", "frac", "framed", "frameddimension", "framedparameter", "framedtext", "freezedimenmacro", "freezemeasure", "freezeparagraphproperties", "frenchspacing", "from", "fromlinenote", "frown", "frozenhbox", "frule", "fsp", "fullouterjoin", "gacute", "gamma", "gbreve", "gcaron", "gcd", "gcircumflex", "gcommaaccent", "gdefconvertedargument", "gdefconvertedcommand", "gdotaccent", "ge", "geq", "geqq", "geqslant", "getMPdrawing", "getMPlayer", "getboxfromcache", "getboxllx", "getboxlly", "getbuffer", "getbufferdata", "getcommacommandsize", "getcommalistsize", "getdatavalue", "getdayoftheweek", "getdayspermonth", "getdefinedbuffer", "getdocumentargument", "getdocumentargumentdefault", "getdocumentfilename", "getdummyparameters", "getemptyparameters", "geteparameters", "getexpandedparameters", "getfiguredimensions", "getfirstcharacter", "getfirsttwopassdata", "getfromcommacommand", "getfromcommalist", "getfromluatable", "getfromtwopassdata", "getglyphdirect", "getglyphstyled", "getgparameters", "getinlineuserdata", "getlasttwopassdata", "getlocalfloat", "getlocalfloats", "getmarking", "getmessage", "getnamedglyphdirect", "getnamedglyphstyled", "getnamedtwopassdatalist", "getnaturaldimensions", "getnoflines", "getobject", "getobjectdimensions", "getpaletsize", "getparameters", "getparwrapper", "getprivatechar", "getpr!
 ivateslot", "getrandomcount", "getrandomdimen", "getrandomfloat", "getrandomnumber", "getrandomseed", "getraweparameters", "getrawgparameters", "getrawnoflines", "getrawparameters", "getrawxparameters", "getreference", "getreferenceentry", "getroundednoflines", "gets", "getshapetext", "getsubstring", "gettokenlist", "gettwopassdata", "gettwopassdatalist", "getuserdata", "getuvalue", "getvalue", "getvariable", "getvariabledefault", "getxparameters", "gg", "ggg", "gggtr", "gimel", "globaldisablemode", "globalenablemode", "globalletempty", "globalpopbox", "globalpopmacro", "globalpreventmode", "globalprocesscommalist", "globalpushbox", "globalpushmacro", "globalswapcounts", "globalswapdimens", "globalswapmacros", "globalundefine", "glyphfontfile", "gmatrix", "gnapprox", "gneqq", "gnsim", "gobbledoubleempty", "gobbleeightarguments", "gobblefivearguments", "gobblefiveoptionals", "gobblefourarguments", "gobblefouroptionals", "gobbleninearguments", "gobbleoneargument", "gobbleoneoptional", "gobblesevenarguments", "gobblesingleempty", "gobblesixarguments", "gobblespacetokens", "gobbletenarguments", "gobblethreearguments", "gobblethreeoptionals", "gobbletwoarguments", "gobbletwooptionals", "gobbleuntil", "gobbleuntilandfinalize", "gobbleuntilrelax", "godown", "goto", "gotobox", "gotopage", "grabbufferdata", "grabbufferdatadirect", "grabuntil", "gradient", "grave", "graycolor", "grayvalue", "greedysplitstring", "greekAlpha", "greekAlphadasia", "greekAlphadasiaperispomeni", "greekAlphadasiatonos", "greekAlphadasiavaria", "greekAlphaiotasub", "greekAlphaiotasubdasia", "greekAlphaiotasubdasiaperispomeni", "greekAlphaiotasubdasiatonos", "greekAlphaiotasubdasiavaria", "greekAlphaiotasubpsili", "greekAlphaiotasubpsiliperispomeni", "greekAlphaiotasubpsilitonos", "greekAlphaiotasubpsilivaria", "greekAlphamacron", "greekAlphapsili", "greekAlphapsiliperispomeni", "greekAlphapsilitonos", "greekAlphapsilivaria", "greekAlphatonos", "greekAlphavaria", "greekAlphavrachy", "greekBeta", "greekChi", "greekCoronis", "greekDelta", "greekEpsi!
 lon", "greekEpsilondasia", "greekEpsilondasiatonos", "greekEpsilondasiavaria", "greekEpsilonpsili", "greekEpsilonpsilitonos", "greekEpsilonpsilivaria", "greekEpsilontonos", "greekEpsilonvaria", "greekEta", "greekEtadasia", "greekEtadasiaperispomeni", "greekEtadasiatonos", "greekEtadasiavaria", "greekEtaiotasub", "greekEtaiotasubdasia", "greekEtaiotasubdasiaperispomeni", "greekEtaiotasubdasiatonos", "greekEtaiotasubdasiavaria", "greekEtaiotasubpsili", "greekEtaiotasubpsiliperispomeni", "greekEtaiotasubpsilitonos", "greekEtaiotasubpsilivaria", "greekEtapsili", "greekEtapsiliperispomeni", "greekEtapsilitonos", "greekEtapsilivaria", "greekEtatonos", "greekEtavaria", "greekGamma", "greekIota", "greekIotadasia", "greekIotadasiaperispomeni", "greekIotadasiatonos", "greekIotadasiavaria", "greekIotadialytika", "greekIotamacron", "greekIotapsili", "greekIotapsiliperispomeni", "greekIotapsilitonos", "greekIotapsilivaria", "greekIotatonos", "greekIotavaria", "greekIotavrachy", "greekKappa", "greekLambda", "greekMu", "greekNu", "greekOmega", "greekOmegadasia", "greekOmegadasiaperispomeni", "greekOmegadasiatonos", "greekOmegadasiavaria", "greekOmegaiotasub", "greekOmegaiotasubdasia", "greekOmegaiotasubdasiaperispomeni", "greekOmegaiotasubdasiatonos", "greekOmegaiotasubdasiavaria", "greekOmegaiotasubpsili", "greekOmegaiotasubpsiliperispomeni", "greekOmegaiotasubpsilitonos", "greekOmegaiotasubpsilivaria", "greekOmegapsili", "greekOmegapsiliperispomeni", "greekOmegapsilitonos", "greekOmegapsilivaria", "greekOmegatonos", "greekOmegavaria", "greekOmicron", "greekOmicrondasia", "greekOmicrondasiatonos", "greekOmicrondasiavaria", "greekOmicronpsili", "greekOmicronpsilitonos", "greekOmicronpsilivaria", "greekOmicrontonos", "greekOmicronvaria", "greekPhi", "greekPi", "greekPsi", "greekRho", "greekRhodasia", "greekSigma", "greekSigmalunate", "greekTau", "greekTheta", "greekUpsilon", "greekUpsilondasia", "greekUpsilondasiaperispomeni", "greekUpsilondasiatonos", "greekUpsilondasiavaria", "greekUpsilondialytika", "greekUpsilonmacron", "gr!
 eekUpsilontonos", "greekUpsilonvaria", "greekUpsilonvrachy", "greekXi", "greekZeta", "greekalpha", "greekalphadasia", "greekalphadasiaperispomeni", "greekalphadasiatonos", "greekalphadasiavaria", "greekalphaiotasub", "greekalphaiotasubdasia", "greekalphaiotasubdasiaperispomeni", "greekalphaiotasubdasiatonos", "greekalphaiotasubdasiavaria", "greekalphaiotasubperispomeni", "greekalphaiotasubpsili", "greekalphaiotasubpsiliperispomeni", "greekalphaiotasubpsilitonos", "greekalphaiotasubpsilivaria", "greekalphaiotasubtonos", "greekalphaiotasubvaria", "greekalphamacron", "greekalphaoxia", "greekalphaperispomeni", "greekalphapsili", "greekalphapsiliperispomeni", "greekalphapsilitonos", "greekalphapsilivaria", "greekalphatonos", "greekalphavaria", "greekalphavrachy", "greekbeta", "greekbetaalt", "greekchi", "greekdasia", "greekdasiaperispomeni", "greekdasiavaria", "greekdelta", "greekdialytikaperispomeni", "greekdialytikatonos", "greekdialytikavaria", "greekdigamma", "greekepsilon", "greekepsilonalt", "greekepsilondasia", "greekepsilondasiatonos", "greekepsilondasiavaria", "greekepsilonoxia", "greekepsilonpsili", "greekepsilonpsilitonos", "greekepsilonpsilivaria", "greekepsilontonos", "greekepsilonvaria", "greeketa", "greeketadasia", "greeketadasiaperispomeni", "greeketadasiatonos", "greeketadasiavaria", "greeketaiotasub", "greeketaiotasubdasia", "greeketaiotasubdasiaperispomeni", "greeketaiotasubdasiatonos", "greeketaiotasubdasiavaria", "greeketaiotasubperispomeni", "greeketaiotasubpsili", "greeketaiotasubpsiliperispomeni", "greeketaiotasubpsilitonos", "greeketaiotasubpsilivaria", "greeketaiotasubtonos", "greeketaiotasubvaria", "greeketaoxia", "greeketaperispomeni", "greeketapsili", "greeketapsiliperispomeni", "greeketapsilitonos", "greeketapsilivaria", "greeketatonos", "greeketavaria", "greekfinalsigma", "greekgamma", "greekiota", "greekiotadasia", "greekiotadasiaperispomeni", "greekiotadasiatonos", "greekiotadasiavaria", "greekiotadialytika", "greekiotadialytikaperispomeni", "greekiotadialytikatonos", "greekiotadialyt!
 ikavaria", "greekiotamacron", "greekiotaoxia", "greekiotaperispomeni", "greekiotapsili", "greekiotapsiliperispomeni", "greekiotapsilitonos", "greekiotapsilivaria", "greekiotatonos", "greekiotavaria", "greekiotavrachy", "greekkappa", "greekkoppa", "greeklambda", "greekmu", "greeknu", "greeknumerals", "greeknumkoppa", "greekomega", "greekomegadasia", "greekomegadasiaperispomeni", "greekomegadasiatonos", "greekomegadasiavaria", "greekomegaiotasub", "greekomegaiotasubdasia", "greekomegaiotasubdasiaperispomeni", "greekomegaiotasubdasiatonos", "greekomegaiotasubdasiavaria", "greekomegaiotasubperispomeni", "greekomegaiotasubpsili", "greekomegaiotasubpsiliperispomeni", "greekomegaiotasubpsilitonos", "greekomegaiotasubpsilivaria", "greekomegaiotasubtonos", "greekomegaiotasubvaria", "greekomegaoxia", "greekomegaperispomeni", "greekomegapsili", "greekomegapsiliperispomeni", "greekomegapsilitonos", "greekomegapsilivaria", "greekomegatonos", "greekomegavaria", "greekomicron", "greekomicrondasia", "greekomicrondasiatonos", "greekomicrondasiavaria", "greekomicronoxia", "greekomicronpsili", "greekomicronpsilitonos", "greekomicronpsilivaria", "greekomicrontonos", "greekomicronvaria", "greekoxia", "greekperispomeni", "greekphi", "greekphialt", "greekpi", "greekpialt", "greekprosgegrammeni", "greekpsi", "greekpsili", "greekpsiliperispomeni", "greekpsilivaria", "greekrho", "greekrhoalt", "greekrhodasia", "greekrhopsili", "greeksampi", "greeksigma", "greeksigmalunate", "greekstigma", "greektau", "greektheta", "greekthetaalt", "greektonos", "greekupsilon", "greekupsilondasia", "greekupsilondasiaperispomeni", "greekupsilondasiatonos", "greekupsilondasiavaria", "greekupsilondiaeresis", "greekupsilondialytikaperispomeni", "greekupsilondialytikatonos", "greekupsilondialytikavaria", "greekupsilonmacron", "greekupsilonoxia", "greekupsilonperispomeni", "greekupsilonpsili", "greekupsilonpsiliperispomeni", "greekupsilonpsilitonos", "greekupsilonpsilivaria", "greekupsilontonos", "greekupsilonvaria", "greekupsilonvrachy", "greekvaria", "greekxi!
 ", "greekzeta", "grid", "groupedcommand", "groupedcommandcs", "gsetboxllx", "gsetboxlly", "gstroke", "gt", "gtrapprox", "gtrdot", "gtreqless", "gtreqqless", "gtrless", "gtrsim", "guilsingleleft", "guilsingleright", "gujaratinumerals", "gurmurkhinumerals", "hairline", "hairspace", "halflinestrut", "halfstrut", "halfwaybox", "handletokens", "handwritten", "hangul", "hanzi", "hash", "hat", "hatmarked", "hbar", "hboxofvbox", "hboxreference", "hcaron", "hcircumflex", "hdofstring", "headhbox", "headlanguage", "headnumber", "headnumbercontent", "headnumberdistance", "headnumberwidth", "headreferenceattributes", "headsetupspacing", "headtext", "headtextcontent", "headtextdistance", "headtexts", "headtextwidth", "headvbox", "headwidth", "heartsuit", "hebrewAlef", "hebrewAyin", "hebrewBet", "hebrewDalet", "hebrewGimel", "hebrewHe", "hebrewHet", "hebrewKaf", "hebrewKaffinal", "hebrewLamed", "hebrewMem", "hebrewMemfinal", "hebrewNun", "hebrewNunfinal", "hebrewPe", "hebrewPefinal", "hebrewQof", "hebrewResh", "hebrewSamekh", "hebrewShin", "hebrewTav", "hebrewTet", "hebrewTsadi", "hebrewTsadifinal", "hebrewVav", "hebrewYod", "hebrewZayin", "hebrewnumerals", "heightanddepthofstring", "heightofstring", "heightspanningtext", "helptext", "hexnumber", "hexstringtonumber", "hglue", "hiddenbar", "hiddencitation", "hiddencite", "hideblocks", "high", "highlight", "highordinalstr", "hilo", "himilo", "hl", "hom", "hookleftarrow", "hookleftarrowint", "hookleftarrowtext", "hookrightarrow", "hookrightarrowtext", "horizontalgrowingbar", "horizontalpositionbar", "hpackbox", "hpackedbox", "hphantom", "hpos", "hsizefraction", "hslash", "hsmash", "hsmashbox", "hsmashed", "hspace", "hstroke", "htdpofstring", "htofstring", "hyphen", "hyphenatedcoloredword", "hyphenatedfile", "hyphenatedfilename", "hyphenatedhbox", "hyphenatedpar", "hyphenatedurl", "hyphenatedword", "iacute", "ibox", "ibreve", "icaron", "icircumflex", "ideographichalffillspace", "ideographicspace", "idiaeresis", "idotaccent", "idotbelow", "idoublegrave", "idxfromluatable", "ifassig!
 nment", "iff", "ifinobject", "ifinoutputstream", "iflua", "ifparameters", "iftrialtypesetting", "ifxml", "ifxmlatt", "ifxmlattempty", "ifxmlempty", "ifxmlselfempty", "ifxmltext", "ignoreimplicitspaces", "ignoretagsinexport", "ignorevalue", "igrave", "ihook", "iiiint", "iiiintegral", "iiiintop", "iiint", "iiintegral", "iiintop", "iint", "iintegral", "iintop", "iinvertedbreve", "ijligature", "im", "imacron", "imaginaryi", "imaginaryj", "imath", "immediatesavetwopassdata", "impliedby", "implies", "impliesby", "imply", "in", "includemenu", "includesvgbuffer", "includesvgfile", "includeversioninfo", "increment", "incrementcounter", "incrementedcounter", "incrementpagenumber", "incrementsubpagenumber", "incrementvalue", "indentation", "index", "inf", "infofont", "infofontbold", "inframed", "infty", "infull", "inheritparameter", "inhibitblank", "ininner", "ininneredge", "ininnermargin", "initializeboxstack", "injlim", "inleft", "inleftedge", "inleftmargin", "inline", "inlinebar", "inlinebuffer", "inlinedbox", "inlinemath", "inlinemathematics", "inlinemessage", "inlineordisplaymath", "inlineprettyprintbuffer", "inlinerange", "inmargin", "inmframed", "innerflushshapebox", "inother", "inouter", "inouteredge", "inoutermargin", "input", "inputfilebarename", "inputfilename", "inputfilerealsuffix", "inputfilesuffix", "inputgivenfile", "inright", "inrightedge", "inrightmargin", "insertblankafter", "insertblankbefore", "insertlineafter", "insertlinebefore", "insertpages", "inspectluatable", "installactionhandler", "installactivecharacter", "installanddefineactivecharacter", "installattributestack", "installautocommandhandler", "installautosetuphandler", "installbasicautosetuphandler", "installbasicparameterhandler", "installbottomframerenderer", "installcommandhandler", "installcorenamespace", "installctxfunction", "installctxscanner", "installdefinehandler", "installdefinitionset", "installdefinitionsetmember", "installdirectcommandhandler", "installdirectparameterhandler", "installdirectparametersethandler", "installdirectset!
 uphandler", "installdirectstyleandcolorhandler", "installframedautocommandhandler", "installframedcommandhandler", "installglobalmacrostack", "installlanguage", "installleftframerenderer", "installmacrostack", "installnamespace", "installoutputroutine", "installpagearrangement", "installparameterhandler", "installparameterhashhandler", "installparametersethandler", "installparentinjector", "installprotectedctxfunction", "installprotectedctxscanner", "installrightframerenderer", "installrootparameterhandler", "installsetuphandler", "installsetuponlycommandhandler", "installshipoutmethod", "installsimplecommandhandler", "installsimpleframedcommandhandler", "installstyleandcolorhandler", "installswitchcommandhandler", "installswitchsetuphandler", "installtexdirective", "installtextracker", "installtopframerenderer", "installunitsseparator", "installunitsspace", "installversioninfo", "int", "intc", "intclockwise", "integerinterval", "integerrounding", "integers", "integral", "interactionbar", "interactionbuttons", "interactionmenu", "intercal", "interiorset", "intertext", "interval", "interwordspaceafter", "interwordspacebefore", "interwordspaces", "interwordspacesafter", "interwordspacesbefore", "intop", "inv", "inverse", "invisiblecomma", "invisibleplus", "invisibletimes", "invokepagehandler", "iogonek", "iota", "italic", "italicbold", "italiccorrection", "italicface", "item", "items", "itemtag", "itilde", "jcaron", "jcircumflex", "jmath", "jobfilename", "jobfilesuffix", "kap", "kappa", "kcaron", "kcommaaccent", "keepblocks", "keeplinestogether", "keepunwantedspaces", "ker", "kerncharacters", "khook", "kkra", "koreancirclenumerals", "koreannumerals", "koreannumeralsc", "koreannumeralsp", "koreanparentnumerals", "lVert", "labellanguage", "labeltext", "labeltexts", "lacute", "lambda", "lambdabar", "land", "langle", "language", "languageCharacters", "languagecharacters", "languagecharwidth", "lannuity", "laplace", "lastcounter", "lastcountervalue", "lastdigit", "lastlinewidth", "lastnaturalboxdp", "lastnaturalboxht",!
  "lastnaturalboxwd", "lastparwrapper", "lastpredefinedsymbol", "lastrealpage", "lastrealpagenumber", "lastsubcountervalue", "lastsubpage", "lastsubpagenumber", "lasttwodigits", "lastuserpage", "lastuserpagenumber", "lateluacode", "latin", "layeredtext", "layerheight", "layerwidth", "lazysavetaggedtwopassdata", "lazysavetwopassdata", "lbannuity", "lbar", "lbox", "lbrace", "lbracket", "lcaron", "lceil", "lchexnumber", "lchexnumbers", "lcommaaccent", "lcurl", "ldot", "ldotmiddle", "ldotp", "ldots", "le", "leadsto", "left", "leftaligned", "leftarrow", "leftarrowtail", "leftarrowtext", "leftarrowtriangle", "leftbottombox", "leftbox", "leftdasharrow", "leftguillemot", "leftharpoondown", "leftharpoondowntext", "leftharpoonup", "leftharpoonuptext", "lefthbox", "leftheadtext", "leftlabeltext", "leftleftarrows", "leftline", "leftmathlabeltext", "leftopeninterval", "leftorrighthbox", "leftorrightvbox", "leftorrightvtop", "leftouterjoin", "leftparbox", "leftrightarrow", "leftrightarrows", "leftrightarrowtext", "leftrightarrowtriangle", "leftrightharpoons", "leftrightharpoonstext", "leftrightsquigarrow", "leftskipadaption", "leftsquigarrow", "leftsubguillemot", "leftthreetimes", "lefttopbox", "lefttoright", "lefttorighthbox", "lefttorightvbox", "lefttorightvtop", "leftwavearrow", "leftwhitearrow", "leq", "leqq", "leqslant", "lequationsystem", "lessapprox", "lessdot", "lesseqgtr", "lesseqqgtr", "lessgtr", "lesssim", "letbeundefined", "letcatcodecommand", "letcscsname", "letcsnamecs", "letcsnamecsname", "letdummyparameter", "letempty", "letgvalue", "letgvalueempty", "letgvaluerelax", "letterampersand", "letterat", "letterbackslash", "letterbar", "letterbgroup", "letterclosebrace", "lettercolon", "letterdollar", "letterdoublequote", "letteregroup", "letterescape", "letterexclamationmark", "letterhash", "letterhat", "letterhyphen", "letterleftbrace", "letterleftbracket", "letterleftparenthesis", "letterless", "lettermore", "letteropenbrace", "letterpercent", "letterquestionmark", "letterrightbrace", "letterrightbracket", "letter!
 rightparenthesis", "lettersinglequote", "letterslash", "letterspacing", "lettertilde", "letterunderscore", "letvalue", "letvalueempty", "letvaluerelax", "lfence", "lfloor", "lg", "lgroup", "lhbox", "lhooknwarrow", "lhooksearrow", "lim", "liminf", "limitatefirstline", "limitatelines", "limitatetext", "limsup", "line", "linebox", "linefeed", "linefillerhbox", "linefillervbox", "linefillervtop", "linenote", "linespanningtext", "linethickness", "linterval", "listcitation", "listcite", "listlength", "listnamespaces", "literalmode", "ljligature", "ll", "llangle", "llap", "llbracket", "llcorner", "lll", "llless", "llointerval", "lmoustache", "ln", "lnapprox", "lneq", "lneqq", "lnot", "lnsim", "loadanyfile", "loadanyfileonce", "loadbtxdefinitionfile", "loadbtxreplacementfile", "loadcldfile", "loadcldfileonce", "loadfontgoodies", "loadluafile", "loadluafileonce", "loadspellchecklist", "loadtexfile", "loadtexfileonce", "loadtypescriptfile", "localbox", "localframed", "localframedwithsettings", "localhsize", "localmargintext", "localpopbox", "localpopmacro", "localpushbox", "localpushmacro", "localundefine", "locatedfilepath", "locatefilepath", "locfilename", "log", "logo", "lohi", "lointerval", "lomihi", "longleftarrow", "longleftrightarrow", "longmapsfrom", "longmapsto", "longrightarrow", "longrightsquigarrow", "looparrowleft", "looparrowright", "lor", "low", "lowerbox", "lowercased", "lowercasestring", "lowercasing", "lowerint", "lowerleftdoubleninequote", "lowerleftsingleninequote", "lowerrightdoubleninequote", "lowerrightsingleninequote", "lozenge", "lparent", "lrannuity", "lrbannuity", "lrcorner", "lrointerval", "lrtbbox", "lstroke", "lt", "ltimes", "ltop", "ltrhbox", "ltrtext", "ltrvbox", "ltrvtop", "luaTeX", "luacode", "luaconditional", "luaenvironment", "luaexpanded", "luaexpr", "luafunction", "luajitTeX", "luamajorversion", "luametaTeX", "luaminorversion", "luaparameterset", "luasetup", "luaversion", "lvert", "m", "mLeftarrow", "mLeftrightarrow", "mRightarrow", "mVert", "mainlanguage", "makecharacteractive", "mak!
 erawcommalist", "makestrutofbox", "maltese", "mapfontsize", "maps", "mapsas", "mapsdown", "mapsfrom", "mapsto", "mapstotext", "mapsup", "margindata", "margintext", "markcontent", "markedpages", "marker", "marking", "markinjector", "markpage", "markreferencepage", "mat", "math", "mathDitalicshape", "mathDuprightshape", "mathampersand", "mathbackground", "mathbf", "mathbi", "mathblackboard", "mathbs", "mathdefault", "mathdelimiter", "mathditalicshape", "mathdollar", "mathdouble", "mathduprightshape", "matheitalicshape", "mathematics", "matheuprightshape", "mathfraktur", "mathgroupedcommandcs", "mathhash", "mathhyphen", "mathiitalicshape", "mathit", "mathitalic", "mathiuprightshape", "mathjitalicshape", "mathjuprightshape", "mathlabellanguage", "mathlabeltext", "mathlabeltexts", "mathloose", "mathnesting", "mathop", "mathopdolimits", "mathopnolimits", "mathover", "mathovertext", "mathpercent", "mathpiitalicshape", "mathpiuprightshape", "mathrm", "mathscript", "mathsl", "mathss", "mathstacker", "mathtext", "mathtextbf", "mathtextbi", "mathtextbs", "mathtextit", "mathtextsl", "mathtexttf", "mathtf", "mathtogether", "mathtriplet", "mathtt", "mathunder", "mathundertext", "mathupright", "mathword", "mathwordbf", "mathwordbi", "mathwordbs", "mathwordit", "mathwordsl", "mathwordtf", "matrix", "max", "maxaligned", "mbox", "mcframed", "measure", "measured", "measuredangle", "measuredeq", "median", "medskip", "medspace", "menubutton", "mequal", "message", "mfence", "mframed", "mfunction", "mfunctionlabeltext", "mhbox", "mho", "mhookleftarrow", "mhookrightarrow", "mid", "midaligned", "middle", "middlealigned", "middlebox", "middleparbox", "midhbox", "midsubsentence", "min", "minimalhbox", "minus", "minuscolon", "mirror", "mixedcaps", "mkvibuffer", "mleftarrow", "mleftharpoondown", "mleftharpoonup", "mleftoverrightarrow", "mleftrightarrow", "mleftrightharpoons", "mmapsto", "mod", "models", "modtwosum", "moduleparameter", "molecule", "mono", "monobold", "mononormal", "month", "monthlong", "monthshort", "mp", "mplocation", "mpra!
 ndomnumber", "mrel", "mrightarrow", "mrightharpoondown", "mrightharpoonup", "mrightleftharpoons", "mrightoverleftarrow", "mtext", "mtp", "mtriplerel", "mtwoheadleftarrow", "mtwoheadrightarrow", "mu", "multimap", "mvert", "nHdownarrow", "nHuparrow", "nLeftarrow", "nLeftrightarrow", "nRightarrow", "nVDash", "nVdash", "nVleftarrow", "nVleftrightarrow", "nVrightarrow", "nabla", "nacute", "namedheadnumber", "namedstructureheadlocation", "namedstructureuservariable", "namedstructurevariable", "namedtaggedlabeltexts", "napostrophe", "napprox", "napproxEq", "narrownobreakspace", "nasymp", "natural", "naturalhbox", "naturalhpack", "naturalnumbers", "naturaltpack", "naturalvbox", "naturalvcenter", "naturalvpack", "naturalvtop", "naturalwd", "ncaron", "ncommaaccent", "ncong", "ncurl", "ndivides", "ne", "nearrow", "neg", "negatecolorbox", "negated", "negativesign", "negemspace", "negenspace", "negthinspace", "neng", "neq", "nequiv", "neswarrow", "newattribute", "newcatcodetable", "newcounter", "newevery", "newfrenchspacing", "newluatable", "newmode", "newrepeatablerandom", "newsignal", "newsystemmode", "nexists", "nextbox", "nextboxdp", "nextboxht", "nextboxhtdp", "nextboxwd", "nextcounter", "nextcountervalue", "nextdepth", "nextparagraphs", "nextrealpage", "nextrealpagenumber", "nextsubcountervalue", "nextsubpage", "nextsubpagenumber", "nextuserpage", "nextuserpagenumber", "ngeq", "ngrave", "ngtr", "ngtrless", "ngtrsim", "ni", "nihongo", "nin", "njligature", "nleftarrow", "nleftrightarrow", "nleq", "nless", "nlessgtr", "nlesssim", "nmid", "nni", "nobar", "nobreakspace", "nocap", "nocasing", "nocharacteralign", "nocitation", "nocite", "nodepthstrut", "nodetostring", "noffigurepages", "noflines", "noflinesinbox", "noflocalfloats", "noheaderandfooterlines", "noheightstrut", "nohyphens", "noindentation", "noitem", "nonfrenchspacing", "nonmathematics", "nonvalidassignment", "normal", "normalboldface", "normalframedwithsettings", "normalitalicface", "normalizebodyfontsize", "normalizedfontsize", "normalizefontdepth", "normalizef!
 ontheight", "normalizefontline", "normalizefontwidth", "normalizetextdepth", "normalizetextheight", "normalizetextline", "normalizetextwidth", "normalslantedface", "normaltypeface", "nospace", "not", "note", "notesymbol", "notimes", "notin", "notopandbottomlines", "notragged", "nowns", "nparallel", "nprec", "npreccurlyeq", "nrightarrow", "nsim", "nsimeq", "nsqsubseteq", "nsqsupseteq", "nsubset", "nsubseteq", "nsucc", "nsucccurlyeq", "nsupset", "nsupseteq", "ntilde", "ntimes", "ntriangleleft", "ntrianglelefteq", "ntriangleright", "ntrianglerighteq", "nu", "numberhere", "numberofpoints", "numbers", "nvDash", "nvdash", "nvleftarrow", "nvleftrightarrow", "nvrightarrow", "nwarrow", "nwsearrow", "oacute", "obeydepth", "objectdepth", "objectheight", "objectmargin", "objectwidth", "obox", "obreve", "ocaron", "ocircumflex", "ocircumflexacute", "ocircumflexdotbelow", "ocircumflexgrave", "ocircumflexhook", "ocircumflextilde", "octnumber", "octstringtonumber", "odiaeresis", "odiaeresismacron", "odot", "odotaccent", "odotaccentmacron", "odotbelow", "odoublegrave", "oeligature", "offset", "offsetbox", "ograve", "ohm", "ohook", "ohorn", "ohornacute", "ohorndotbelow", "ohorngrave", "ohornhook", "ohorntilde", "ohungarumlaut", "oiiint", "oiint", "oint", "ointc", "ointclockwise", "ointctrclockwise", "oinvertedbreve", "omacron", "omega", "omicron", "ominus", "onedigitrounding", "oneeighth", "onefifth", "onehalf", "onequarter", "onesixth", "onesuperior", "onethird", "oogonek", "oogonekmacron", "openinterval", "operatorlanguage", "operatortext", "oplus", "optimize", "optionalword", "ordfeminine", "ordinaldaynumber", "ordinalstr", "ordmasculine", "ornamenttext", "orthogonalcomplement", "orthogonalcomplementsymbol", "oslash", "ostroke", "ostrokeacute", "otilde", "otildemacron", "otimes", "outline", "outlined", "outputfilename", "outputstreambox", "outputstreamcopy", "outputstreamunvbox", "outputstreamunvcopy", "over", "overLeftarrow", "overLeftbararrow", "overLeftrightarrow", "overRightarrow", "overRightbararrow", "overbar", "overbars"!
 , "overbartext", "overbarunderbar", "overbrace", "overbracetext", "overbraceunderbrace", "overbracket", "overbrackettext", "overbracketunderbracket", "overhook", "overlaybutton", "overlaycolor", "overlaydepth", "overlayfigure", "overlayheight", "overlayimage", "overlaylinecolor", "overlaylinewidth", "overlayoffset", "overlayrollbutton", "overlaywidth", "overleftarrow", "overleftbararrow", "overleftharpoon", "overleftharpoondown", "overleftharpoonup", "overlefthookarrow", "overleftrightarrow", "overlefttailarrow", "overloaderror", "overparent", "overparenttext", "overparentunderparent", "overrightarrow", "overrightbararrow", "overrightharpoon", "overrightharpoondown", "overrightharpoonup", "overrighthookarrow", "overrighttailarrow", "overset", "overstrike", "overstrikes", "overtwoheadleftarrow", "overtwoheadrightarrow", "owns", "page", "pagearea", "pageblockrealpage", "pagebreak", "pagefigure", "pageinjection", "pagenumber", "pagereference", "pagestaterealpage", "pagestaterealpageorder", "paletsize", "paragraphmark", "parallel", "paralleltext", "parenthesis", "part", "partial", "pdfTeX", "pdfactualtext", "pdfbackendactualtext", "pdfbackendcurrentresources", "pdfbackendsetcatalog", "pdfbackendsetcolorspace", "pdfbackendsetextgstate", "pdfbackendsetinfo", "pdfbackendsetname", "pdfbackendsetpageattribute", "pdfbackendsetpageresource", "pdfbackendsetpagesattribute", "pdfbackendsetpattern", "pdfbackendsetshade", "pdfcolor", "pdfeTeX", "percent", "percentdimen", "periodcentered", "periodic", "periods", "permitcaretescape", "permitcircumflexescape", "permitspacesbetweengroups", "perp", "persiandecimals", "persiandecimalseparator", "persiannumerals", "persianthousandsseparator", "perthousand", "phantom", "phantombox", "phi", "phook", "pickupgroupedcommand", "pickupgroupedcommandcs", "pitchfork", "placeattachments", "placebookmarks", "placebtxrendering", "placechemical", "placecitation", "placecombinedlist", "placecomments", "placecontent", "placecurrentformulanumber", "placedbox", "placefigure", "placefloat", "placefloat!
 caption", "placefloatplaceholder", "placefloatwithsetups", "placefootnotes", "placeformula", "placeframed", "placegraphic", "placeheadnumber", "placeheadtext", "placehelp", "placeholder", "placeindex", "placeinitial", "placeintermezzo", "placelayer", "placelayeredtext", "placelegend", "placelist", "placelistofabbreviations", "placelistofchemicals", "placelistoffigures", "placelistofgraphics", "placelistofintermezzi", "placelistoflogos", "placelistofpublications", "placelistofsorts", "placelistofsynonyms", "placelistoftables", "placelocalfootnotes", "placelocalnotes", "placement", "placenamedfloat", "placenamedformula", "placenotes", "placeongrid", "placeontopofeachother", "placepagenumber", "placepairedbox", "placeparallel", "placerawheaddata", "placerawheadnumber", "placerawheadtext", "placerawlist", "placeregister", "placerenderingwindow", "placesavedfloat", "placesidebyside", "placesubformula", "placesynchronize", "placetable", "pm", "pmatrix", "popattribute", "popmacro", "popmode", "popsystemmode", "position", "positionoverlay", "positionregionoverlay", "positivesign", "postponenotes", "prec", "precapprox", "preccurlyeq", "preceq", "preceqq", "precnapprox", "precneq", "precneqq", "precnsim", "precsim", "predefinedfont", "predefinefont", "predefinesymbol", "prefixedpagenumber", "prefixlanguage", "prefixtext", "preimage", "prependetoks", "prependgvalue", "prependhiddenbackground", "prependtocommalist", "prependtoks", "prependtoksonce", "prependvalue", "prerollblank", "prerolledpages", "presetbtxlabeltext", "presetdocument", "presetfieldsymbols", "presetheadtext", "presetlabeltext", "presetmathlabeltext", "presetoperatortext", "presetprefixtext", "presetsuffixtext", "presettaglabeltext", "presetunittext", "pretocommalist", "prettyprintbuffer", "prevcounter", "prevcountervalue", "preventmode", "prevrealpage", "prevrealpagenumber", "prevsubcountervalue", "prevsubpage", "prevsubpagenumber", "prevuserpage", "prevuserpagenumber", "prime", "primed", "primes", "procent", "processMPbuffer", "processMPfigurefile", "proc!
 essaction", "processallactionsinset", "processassignlist", "processassignmentcommand", "processassignmentlist", "processbetween", "processblocks", "processbodyfontenvironmentlist", "processcolorcomponents", "processcommacommand", "processcommalist", "processcommalistwithparameters", "processcontent", "processfile", "processfilemany", "processfilenone", "processfileonce", "processfirstactioninset", "processisolatedchars", "processisolatedwords", "processlinetablebuffer", "processlinetablefile", "processlist", "processmonth", "processranges", "processseparatedlist", "processtexbuffer", "processtokens", "processuntil", "processxmlbuffer", "processxmlfile", "processxtablebuffer", "processyear", "prod", "product", "profiledbox", "profilegivenbox", "program", "project", "projlim", "propto", "pseudoMixedCapped", "pseudoSmallCapped", "pseudoSmallcapped", "pseudosmallcapped", "psi", "punctuationspace", "purenumber", "pushattribute", "pushbutton", "pushmacro", "pushmode", "pushoutputstream", "pushsystemmode", "putboxincache", "putnextboxincache", "qquad", "quad", "quadrupleprime", "quadrupleprimed", "quads", "quarterstrut", "questiondown", "questionedeq", "quitcommalist", "quitprevcommalist", "quittypescriptscanning", "quotation", "quote", "quotedbl", "quotedblbase", "quotedblleft", "quotedblright", "quoteleft", "quoteright", "quotesingle", "quotesinglebase", "rVert", "racute", "raggedbottom", "raggedcenter", "raggedleft", "raggedright", "raggedwidecenter", "raisebox", "randomizetext", "randomnumber", "rangle", "rannuity", "rationals", "rawcounter", "rawcountervalue", "rawdate", "rawdoifelseinset", "rawdoifinset", "rawdoifinsetelse", "rawgetparameters", "rawmathematics", "rawparagraphshape", "rawprocessaction", "rawprocesscommacommand", "rawprocesscommalist", "rawstructurelistuservariable", "rawsubcountervalue", "rbannuity", "rbox", "rbrace", "rbracket", "rcaron", "rceil", "rcommaaccent", "rdoublegrave", "readfile", "readfixfile", "readjobfile", "readlocfile", "readsetfile", "readsysfile", "readtexfile", "readxmlfile", "r!
 ealSmallCapped", "realSmallcapped", "realpagenumber", "reals", "realsmallcapped", "rectangularpoleintc", "recursedepth", "recurselevel", "recursestring", "redoconvertfont", "ref", "reference", "referencecolumnnumber", "referencepagedetail", "referencepagestate", "referenceprefix", "referencerealpage", "referencesymbol", "referring", "registerattachment", "registerctxluafile", "registered", "registerexternalfigure", "registerfontclass", "registerhyphenationexception", "registerhyphenationpattern", "registermenubuttons", "registeroverloads", "registerparwrapper", "registerparwrapperreverse", "registersort", "registersortpage", "registersynonym", "registertopcontent", "registerunit", "registerunitshortcut", "regular", "relatemarking", "relateparameterhandlers", "relaxvalueifundefined", "relbar", "relfraction", "reltext", "remainingcharacters", "remark", "removebottomthings", "removedepth", "removefromcommalist", "removelastskip", "removelastspace", "removemarkedcontent", "removepunctuation", "removesubstring", "removetoks", "removeunwantedspaces", "repeathead", "replacefeature", "replaceincommalist", "replaceword", "requationsystem", "rescan", "rescanwithsetup", "resetMPdrawing", "resetMPenvironment", "resetMPinstance", "resetalignmentcharacter", "resetallattributes", "resetalternate", "resetandaddfeature", "resetbar", "resetboxesincache", "resetbreakpoints", "resetbuffer", "resetcharacteralign", "resetcharacterkerning", "resetcharacterspacing", "resetcharacterstripping", "resetcollector", "resetcounter", "resetctxscanner", "resetdigitsmanipulation", "resetdirection", "resetextrafontkerns", "resetfeature", "resetflag", "resetfontcolorscheme", "resetfontfallback", "resetfontsolution", "resethyphenationfeatures", "resetinjector", "resetinteractionmenu", "resetitaliccorrection", "resetlayer", "resetlineprofile", "resetlistsynonyms", "resetlocalbox", "resetlocalfloats", "resetlocalshowmakeup", "resetmacros", "resetmarker", "resetmarking", "resetmode", "resetoverloads", "resetpagenumber", "resetparallel", "resetpath", "!
 resetpenalties", "resetperiodkerning", "resetprofile", "resetrecurselevel", "resetreference", "resetreplacements", "resetscript", "resetsetups", "resetshownsynonyms", "resetsubpagenumber", "resetsymbolset", "resetsynchronizemarking", "resetsynonyms", "resetsynonymsprogress", "resetsystemmode", "resettimer", "resettokenlist", "resettrackers", "resettrialtypesetting", "resetusedsortings", "resetusedsynonyms", "resetuserpagenumber", "resetvalue", "resetvisualizers", "reshapebox", "resolvedglyphdirect", "resolvedglyphstyled", "restartcounter", "restorebox", "restorecatcodes", "restorecounter", "restorecurrentattributes", "restoreendofline", "restoreglobalbodyfont", "restriction", "retestfeature", "reusableMPgraphic", "reuseMPgraphic", "reuserandomseed", "reverseddoubleprime", "reversedprime", "reversedtripleprime", "reversehbox", "reversehpack", "reverseprimed", "reversetpack", "reversevbox", "reversevboxcontent", "reversevpack", "reversevtop", "revivefeature", "rfence", "rfloor", "rgroup", "rhbox", "rho", "rhooknearrow", "rhookswarrow", "right", "rightaligned", "rightangle", "rightarrow", "rightarrowbar", "rightarrowtail", "rightarrowtext", "rightarrowtriangle", "rightbottombox", "rightbox", "rightdasharrow", "rightguillemot", "rightharpoondown", "rightharpoondowntext", "rightharpoonup", "rightharpoonuptext", "righthbox", "rightheadtext", "rightlabeltext", "rightleftarrows", "rightleftarrowtext", "rightleftharpoons", "rightleftharpoonstext", "rightline", "rightmathlabeltext", "rightopeninterval", "rightorleftpageaction", "rightouterjoin", "rightoverleftarrowtext", "rightpageorder", "rightparbox", "rightrightarrows", "rightskipadaption", "rightsquigarrow", "rightsubguillemot", "rightthreearrows", "rightthreetimes", "righttoleft", "righttolefthbox", "righttoleftvbox", "righttoleftvtop", "righttopbox", "rightwavearrow", "rightwhitearrow", "ring", "ringmarked", "rinterval", "rinvertedbreve", "risingdotseq", "rlannuity", "rlap", "rlbannuity", "rlointerval", "rmoustache", "rneq", "robustaddtocommalist", "robustdoifelsein!
 set", "robustdoifinsetelse", "robustpretocommalist", "rointerval", "rollbutton", "roman", "romanC", "romanD", "romanI", "romanII", "romanIII", "romanIV", "romanIX", "romanL", "romanM", "romanV", "romanVI", "romanVII", "romanVIII", "romanX", "romanXI", "romanXII", "romanc", "romand", "romani", "romanii", "romaniii", "romaniv", "romanix", "romanl", "romanm", "romannumerals", "romanv", "romanvi", "romanvii", "romanviii", "romanx", "romanxi", "romanxii", "root", "rootradical", "rotate", "rparent", "rrangle", "rrbracket", "rrointerval", "rtimes", "rtlhbox", "rtltext", "rtlvbox", "rtlvtop", "rtop", "ruby", "ruleddbox", "ruleddpack", "ruledhbox", "ruledhpack", "ruledmbox", "ruledtpack", "ruledvbox", "ruledvpack", "ruledvtop", "runMPbuffer", "runninghbox", "russianNumerals", "russiannumerals", "rvert", "sacute", "safechar", "samplefile", "sans", "sansbold", "sansnormal", "sansserif", "savebox", "savebtxdataset", "savebuffer", "savecounter", "savecurrentattributes", "savemathexport", "savenormalmeaning", "savetaggedtwopassdata", "savetwopassdata", "sbox", "scalarproduct", "scale", "scaron", "scedilla", "schwa", "schwahook", "scircumflex", "scommaaccent", "screen", "searrow", "sec", "secondderivative", "secondderivativesymbol", "secondoffivearguments", "secondoffourarguments", "secondofsixarguments", "secondofthreearguments", "secondofthreeunexpanded", "secondoftwoarguments", "secondoftwounexpanded", "section", "sectionmark", "seeindex", "select", "selectblocks", "semicirclepoleintc", "serializecommalist", "serializedcommalist", "serif", "serifbold", "serifnormal", "setJSpreamble", "setMPlayer", "setMPpositiongraphic", "setMPpositiongraphicrange", "setMPtext", "setMPvariable", "setMPvariables", "setalignmentcharacter", "setalignmentswitch", "setalternate", "setautopagestaterealpageno", "setbar", "setbigbodyfont", "setboxllx", "setboxlly", "setbreakpoints", "setcapstrut", "setcatcodetable", "setcharacteralign", "setcharacteraligndetail", "setcharactercasing", "setcharactercleaning", "setcharacterkerning", "setcharacterspac!
 ing", "setcharacterstripping", "setcharstrut", "setcollector", "setcolormodel", "setcounter", "setcounterown", "setctxluafunction", "setcurrentfontclass", "setdataset", "setdatavalue", "setdefaultpenalties", "setdigitsmanipulation", "setdirection", "setdocumentargument", "setdocumentargumentdefault", "setdocumentfilename", "setdummyparameter", "setelementbackendtag", "setelementexporttag", "setelementnature", "setemeasure", "setevalue", "setevariable", "setevariables", "setexpansion", "setextrafontkerns", "setfirstline", "setfirstpasscharacteralign", "setflag", "setfont", "setfontcolorscheme", "setfontfeature", "setfontsolution", "setfontstrut", "setfractions", "setglobalscript", "setgmeasure", "setgvalue", "setgvariable", "setgvariables", "sethboxregister", "sethyphenatedurlafter", "sethyphenatedurlbefore", "sethyphenatedurlnormal", "sethyphenationfeatures", "setinitial", "setinjector", "setinteraction", "setinterfacecommand", "setinterfaceconstant", "setinterfaceelement", "setinterfacemessage", "setinterfacevariable", "setinternalrendering", "setitaliccorrection", "setlayer", "setlayerframed", "setlayertext", "setlinefiller", "setlineprofile", "setlocalhsize", "setlocalscript", "setlocalshowmakeup", "setluatable", "setmainbodyfont", "setmainlineprofile", "setmainparbuilder", "setmarker", "setmarking", "setmathmatrixanchoring", "setmathstyle", "setmeasure", "setmessagetext", "setminus", "setmode", "setnostrut", "setnote", "setnotetext", "setobject", "setoldstyle", "setoverloads", "setpagelooseness", "setpagereference", "setpagestate", "setpagestaterealpageno", "setparagraphfreezing", "setparagraphshape", "setpenalties", "setpercentdimen", "setperiodkerning", "setposition", "setpositionbox", "setpositiondata", "setpositiondataplus", "setpositiononly", "setpositionplus", "setpositionstrut", "setprofile", "setrandomseed", "setreference", "setreferencedobject", "setregisterentry", "setreplacements", "setrigidcolumnbalance", "setrigidcolumnhsize", "setscript", "setsecondpasscharacteralign", "setsectionblock", "setsi!
 mplecolumnshsize", "setsmallbodyfont", "setsmallcaps", "setstackbox", "setstructurepageregister", "setstrut", "setsuperiors", "setsystemmode", "settabular", "settaggedmetadata", "settestcrlf", "settextcontent", "settightobject", "settightreferencedobject", "settightstrut", "settightunreferencedobject", "settokenlist", "settrialtypesetting", "setuevalue", "setugvalue", "setunreferencedobject", "setup", "setupMPgraphics", "setupMPinstance", "setupMPpage", "setupMPvariables", "setupTABLE", "setupTEXpage", "setupadaptive", "setupalign", "setupalignpass", "setupalternativestyles", "setuparranging", "setupattachment", "setupattachments", "setupbackend", "setupbackground", "setupbackgrounds", "setupbar", "setupbars", "setupblackrules", "setupblank", "setupbleeding", "setupblock", "setupbodyfont", "setupbodyfontenvironment", "setupbookmark", "setupbottom", "setupbottomtexts", "setupboxexport", "setupbtx", "setupbtxdataset", "setupbtxlabeltext", "setupbtxlist", "setupbtxregister", "setupbtxrendering", "setupbuffer", "setupbutton", "setupcapitals", "setupcaption", "setupcaptions", "setupcharacteralign", "setupcharacterkerning", "setupcharacterspacing", "setupchemical", "setupchemicalframed", "setupclipping", "setupcollector", "setupcolor", "setupcolors", "setupcolumns", "setupcolumnset", "setupcolumnsetarea", "setupcolumnsetareatext", "setupcolumnsetlines", "setupcolumnsetspan", "setupcolumnsetstart", "setupcombination", "setupcombinedlist", "setupcomment", "setupcontent", "setupcounter", "setupdataset", "setupdelimitedtext", "setupdescription", "setupdescriptions", "setupdirections", "setupdocument", "setupeffect", "setupenumeration", "setupenumerations", "setupenv", "setupexpansion", "setupexport", "setupexternalfigure", "setupexternalfigures", "setupfacingfloat", "setupfield", "setupfieldbody", "setupfieldcategory", "setupfieldcontentframed", "setupfieldlabelframed", "setupfields", "setupfieldtotalframed", "setupfiller", "setupfillinlines", "setupfillinrules", "setupfirstline", "setupfittingpage", "setupfloat", "setupf!
 loatframed", "setupfloats", "setupfloatsplitting", "setupfontexpansion", "setupfontprotrusion", "setupfonts", "setupfontsolution", "setupfooter", "setupfootertexts", "setupfootnotes", "setupforms", "setupformula", "setupformulae", "setupformulaframed", "setupframed", "setupframedcontent", "setupframedtable", "setupframedtablecolumn", "setupframedtablerow", "setupframedtext", "setupframedtexts", "setupglobalreferenceprefix", "setuphead", "setupheadalternative", "setupheader", "setupheadertexts", "setupheadnumber", "setupheads", "setupheadtext", "setuphelp", "setuphigh", "setuphighlight", "setuphyphenation", "setuphyphenmark", "setupindentedtext", "setupindenting", "setupindex", "setupinitial", "setupinsertion", "setupinteraction", "setupinteractionbar", "setupinteractionmenu", "setupinteractionscreen", "setupinterlinespace", "setupitaliccorrection", "setupitemgroup", "setupitemizations", "setupitemize", "setupitems", "setuplabel", "setuplabeltext", "setuplanguage", "setuplayer", "setuplayeredtext", "setuplayout", "setuplayouttext", "setuplegend", "setuplinefiller", "setuplinefillers", "setuplinenote", "setuplinenumbering", "setuplineprofile", "setuplines", "setuplinetable", "setuplinewidth", "setuplist", "setuplistalternative", "setuplistextra", "setuplocalboxes", "setuplocalfloats", "setuplocalinterlinespace", "setuplow", "setuplowhigh", "setuplowmidhigh", "setupmakeup", "setupmarginblock", "setupmargindata", "setupmarginframed", "setupmarginrule", "setupmarginrules", "setupmarking", "setupmathaccent", "setupmathaccents", "setupmathalignment", "setupmathcases", "setupmathdelimited", "setupmathdelimiter", "setupmathematics", "setupmathexport", "setupmathfence", "setupmathfences", "setupmathfraction", "setupmathfractions", "setupmathframed", "setupmathfunction", "setupmathfunctions", "setupmathlabeltext", "setupmathmatrix", "setupmathnesting", "setupmathoperator", "setupmathoperators", "setupmathornament", "setupmathradical", "setupmathsimplealign", "setupmathstackers", "setupmathstyle", "setupmixedcolumns", "setu!
 pmodule", "setupmulticolumns", "setupnarrower", "setupnotation", "setupnotations", "setupnote", "setupnotes", "setupoffset", "setupoffsetbox", "setupoperatortext", "setupoppositeplacing", "setupoptimize", "setuporientation", "setupoutput", "setupoutputroutine", "setuppagechecker", "setuppagecolumns", "setuppagecomment", "setuppageinjection", "setuppageinjectionalternative", "setuppagenumber", "setuppagenumbering", "setuppageshift", "setuppagestate", "setuppagetransitions", "setuppairedbox", "setuppalet", "setuppaper", "setuppapersize", "setupparagraph", "setupparagraphintro", "setupparagraphnumbering", "setupparagraphs", "setupparallel", "setupperiodkerning", "setupperiods", "setupplaceholder", "setupplacement", "setuppositionbar", "setuppositioning", "setupprefixtext", "setupprocessor", "setupprofile", "setupprograms", "setupquotation", "setupquote", "setuprealpagenumber", "setupreferenceformat", "setupreferenceprefix", "setupreferencestructureprefix", "setupreferencing", "setupregister", "setupregisters", "setuprenderingwindow", "setuprotate", "setupruby", "setups", "setupscale", "setupscript", "setupscripts", "setupsectionblock", "setupselector", "setupshapedparagraph", "setupshift", "setupsidebar", "setupsorting", "setupspacing", "setupspellchecking", "setupstacking", "setupstartstop", "setupstretched", "setupstrut", "setupstyle", "setupsubformula", "setupsubformulas", "setupsubpagenumber", "setupsuffixtext", "setupsymbols", "setupsymbolset", "setupsynchronize", "setupsynchronizecontent", "setupsynctex", "setupsynonyms", "setupsystem", "setuptables", "setuptabulate", "setuptabulatemove", "setuptagging", "setuptaglabeltext", "setuptext", "setuptextbackground", "setuptextdisplay", "setuptextflow", "setuptextnote", "setuptextrules", "setuptexttexts", "setupthinrules", "setuptolerance", "setuptooltip", "setuptop", "setuptoptexts", "setuptype", "setuptyping", "setupunit", "setupunittext", "setupurl", "setupuserdata", "setupuserdataalternative", "setupuserpagenumber", "setupversion", "setupviewerlayer", "setupvspa!
 cing", "setupwhitespace", "setupwithargument", "setupwithargumentswapped", "setupxml", "setupxtable", "setuvalue", "setuxvalue", "setvalue", "setvariable", "setvariables", "setvboxregister", "setvisualizerfont", "setvtopregister", "setwidthof", "setxmeasure", "setxvalue", "setxvariable", "setxvariables", "seveneighths", "sfrac", "shapedhbox", "sharp", "shiftbox", "shiftdown", "shiftup", "showallmakeup", "showattributes", "showbodyfont", "showbodyfontenvironment", "showboxes", "showbreakpoints", "showbtxdatasetauthors", "showbtxdatasetcompleteness", "showbtxdatasetfields", "showbtxfields", "showbtxhashedauthors", "showbtxtables", "showchardata", "showcharratio", "showcolor", "showcolorbar", "showcolorcomponents", "showcolorgroup", "showcolorset", "showcolorstruts", "showcounter", "showdirectives", "showdirsinmargin", "showedebuginfo", "showexperiments", "showfont", "showfontdata", "showfontexpansion", "showfontitalics", "showfontkerns", "showfontparameters", "showfontstrip", "showfontstyle", "showframe", "showglyphdata", "showglyphs", "showgrid", "showgridsnapping", "showhelp", "showhyphenationtrace", "showhyphens", "showinjector", "showjustification", "showkerning", "showlayout", "showlayoutcomponents", "showligature", "showligatures", "showlogcategories", "showluatables", "showmakeup", "showmargins", "showmessage", "showminimalbaseline", "shownextbox", "showotfcomposition", "showpageprogress", "showpalet", "showparentchain", "showparwrapperstate", "showprint", "showrivers", "showsetups", "showsetupsdefinition", "showstruts", "showsymbolset", "showtimer", "showtokens", "showtrackers", "showvalue", "showvariable", "showwarning", "sigma", "signalcharacteralign", "signalrightpage", "sim", "simeq", "similartokens", "simplealignedbox", "simplealignedboxplus", "simplealignedspreadbox", "simplegroupedcommand", "simplegroupedcommandcs", "simplereversealignedbox", "simplereversealignedboxplus", "sin", "singlebond", "singleverticalbar", "sinh", "sixperemspace", "sixthofsixarguments", "skiphere", "slanted", "slantedbold", !
 "slantedface", "slash", "slashed", "slashint", "slicepages", "slong", "slovenianNumerals", "sloveniannumerals", "small", "smallbodyfont", "smallbold", "smallbolditalic", "smallboldslanted", "smallcappedcharacters", "smallcappedromannumerals", "smallcaps", "smaller", "smallitalicbold", "smallnormal", "smallskip", "smallslanted", "smallslantedbold", "smalltype", "smash", "smashbox", "smashboxed", "smashedhbox", "smashedvbox", "smile", "snaptogrid", "softhyphen", "solidus", "someheadnumber", "somekindoftab", "someline", "somelocalfloat", "somenamedheadnumber", "someplace", "somewhere", "space", "spaceddigits", "spaceddigitsmethod", "spaceddigitsseparator", "spaceddigitssymbol", "spaceorpar", "spadesuit", "spanishNumerals", "spanishnumerals", "speech", "sphericalangle", "splitatasterisk", "splitatcolon", "splitatcolons", "splitatcomma", "splitatperiod", "splitdfrac", "splitfilename", "splitfloat", "splitfrac", "splitoffbase", "splitofffull", "splitoffkind", "splitoffname", "splitoffpath", "splitoffroot", "splitofftokens", "splitofftype", "splitstring", "spreadhbox", "sqcap", "sqcup", "sqrt", "sqsubset", "sqsubseteq", "sqsubsetneq", "sqsupset", "sqsupseteq", "sqsupsetneq", "square", "squaredots", "squareintc", "ssharp", "stacking", "stackrel", "stackscripts", "star", "stareq", "starmarked", "startJScode", "startJSpreamble", "startLUA", "startMP", "startMPclip", "startMPcode", "startMPdefinitions", "startMPdrawing", "startMPenvironment", "startMPextensions", "startMPinclusions", "startMPinitializations", "startMPpage", "startMPpositiongraphic", "startMPpositionmethod", "startMPrun", "startPARSEDXML", "startTABLE", "startTABLEbody", "startTABLEfoot", "startTABLEhead", "startTABLEnested", "startTABLEnext", "startTABLEsection", "startTC", "startTD", "startTDs", "startTEX", "startTEXpage", "startTH", "startTN", "startTR", "startTRs", "startTX", "startTY", "startXML", "startalign", "startalignment", "startallmodes", "startalternate", "startaodownintc", "startaointc", "startappendices", "startarrangedpages", "startasciimode!
 ", "startaside", "startattachment", "startbackground", "startbackmatter", "startbar", "startbarint", "startbbordermatrix", "startbigbottom", "startbigcap", "startbigcup", "startbigdoublevee", "startbigdoublewedge", "startbigodot", "startbigoplus", "startbigotimes", "startbigreversesolidus", "startbigsolidus", "startbigsqcap", "startbigsqcup", "startbigtimes", "startbigtop", "startbigudot", "startbiguplus", "startbigvee", "startbigwedge", "startbitmapimage", "startblackboardsum", "startblockquote", "startbodymatter", "startbordermatrix", "startboxedcolumns", "startboxexport", "startbtxlabeltext", "startbtxrenderingdefinitions", "startbuffer", "startcapint", "startcases", "startcatcodetable", "startcenteraligned", "startchapter", "startcharacteralign", "startcheckedfences", "startchemical", "startchemicaltext", "startcirclepoleinsideintc", "startcirclepoleoutsideintc", "startcollect", "startcollecting", "startcolor", "startcolorintent", "startcoloronly", "startcolorset", "startcolumns", "startcolumnset", "startcolumnsetspan", "startcombination", "startcomment", "startcomponent", "startcontextcode", "startcontextdefinitioncode", "startcoprod", "startctxfunction", "startctxfunctiondefinition", "startcupint", "startcurrentcolor", "startcurrentlistentrywrapper", "startdelimited", "startdelimitedtext", "startdisplaymath", "startdmath", "startdocument", "startdoublebarint", "starteffect", "startelement", "startembeddedxtable", "startendnote", "startendofline", "startenvironment", "startequationsystem", "startexceptions", "startexpanded", "startexpandedcollect", "startextendedcatcodetable", "startexternalfigurecollection", "startfacingfloat", "startfact", "startfigure", "startfiguretext", "startfittingpage", "startfixed", "startfloatcombination", "startfont", "startfontclass", "startfontsolution", "startfootnote", "startformula", "startformulacombination", "startformulas", "startframed", "startframedcell", "startframedcontent", "startframedrow", "startframedtable", "startframedtext", "startfrontmatter", "startfullouterjo!
 in", "startgoto", "startgraphictext", "startgridsnapping", "starthanging", "starthbox", "starthboxestohbox", "starthboxregister", "starthead", "startheadtext", "starthelptext", "starthiddencontent", "starthiding", "starthighlight", "starthookleftarrowint", "starthyphenation", "startiiiint", "startiiiintegral", "startiiint", "startiiintegral", "startiint", "startiintegral", "startimath", "startindentation", "startindentedtext", "startint", "startintc", "startintegral", "startinteraction", "startinteractionmenu", "startinterface", "startintermezzotext", "startintertext", "startitem", "startitemgroup", "startitemgroupcolumns", "startitemize", "startitemizetable", "startknockout", "startlabeltext", "startlanguage", "startlayout", "startleftaligned", "startleftouterjoin", "startlegend", "startlequationsystem", "startline", "startlinealignment", "startlinecorrection", "startlinefiller", "startlinenote", "startlinenumbering", "startlines", "startlinetable", "startlinetablebody", "startlinetablecell", "startlinetablehead", "startlocalbox", "startlocalboxrange", "startlocalfootnotes", "startlocalheadsetup", "startlocallinecorrection", "startlocalnotes", "startlocalsetups", "startlowerint", "startlua", "startluacode", "startluaparameterset", "startluasetups", "startmakeup", "startmarginblock", "startmarginrule", "startmarkedcontent", "startmarkpages", "startmatch", "startmathalignment", "startmathcases", "startmathematics", "startmathexport", "startmathfenced", "startmathlabeltext", "startmathmatrix", "startmathmode", "startmathstyle", "startmatrices", "startmatrix", "startmaxaligned", "startmdformula", "startmidaligned", "startmiddlealigned", "startmiddlemakeup", "startmixedcolumns", "startmode", "startmodeset", "startmodtwosum", "startmodule", "startmoduletestsection", "startmpformula", "startmulticolumns", "startnamedformula", "startnamedmatrix", "startnamednotation", "startnamedsection", "startnamedsubformulas", "startnamedtyping", "startnarrow", "startnarrower", "startnegative", "startnicelyfilledbox", "startnointerf!
 erence", "startnotallmodes", "startnotext", "startnotmode", "startoiiint", "startoiint", "startoint", "startointc", "startoperatortext", "startopposite", "startoutputstream", "startoutputsubstream", "startoverlay", "startoverprint", "startpacked", "startpageblock", "startpagecolumns", "startpagecomment", "startpagefigure", "startpagelayout", "startpagemakeup", "startpar", "startparagraph", "startparagraphs", "startparagraphscell", "startparagraphshape", "startparbuilder", "startpart", "startpath", "startplacechemical", "startplacefigure", "startplacefloat", "startplaceformula", "startplacegraphic", "startplaceintermezzo", "startplacelegend", "startplacepairedbox", "startplacetable", "startpositioning", "startpositionoverlay", "startpositive", "startpostponing", "startpostponingnotes", "startprefixtext", "startprerollpageblock", "startprocessassignmentcommand", "startprocessassignmentlist", "startprocesscommacommand", "startprocesscommalist", "startprod", "startproduct", "startprofile", "startproject", "startprotect", "startprotectedcolors", "startpublication", "startpunctuation", "startquotation", "startquote", "startrandomized", "startrandomseed", "startraw", "startrawsetups", "startreadingfile", "startrectangularpoleintc", "startreferenceprefix", "startregime", "startregister", "startrequationsystem", "startreusableMPgraphic", "startrightaligned", "startrightouterjoin", "startruby", "startscript", "startsdformula", "startsection", "startsectionblock", "startsectionblockenvironment", "startsectionlevel", "startsemicirclepoleintc", "startsetups", "startshapebox", "startshapedparagraph", "startshapetext", "startshift", "startshowbreakpoints", "startshowrivers", "startsidebar", "startsimplecolumns", "startslashint", "startspecialitem", "startspeech", "startspformula", "startsplittext", "startspread", "startsquareintc", "startstacking", "startstackingsteps", "startstandardmakeup", "startstaticMPfigure", "startstaticMPgraphic", "startstrictinspectnextcharacter", "startstructurepageregister", "startstrut", "startstyl!
 e", "startsubformulas", "startsubject", "startsubjectlevel", "startsubnumberinghere", "startsubsection", "startsubsentence", "startsubstack", "startsubsubject", "startsubsubsection", "startsubsubsubject", "startsubsubsubsection", "startsubsubsubsubject", "startsubsubsubsubsection", "startsubsubsubsubsubject", "startsuffixtext", "startsum", "startsumint", "startsymbolset", "starttable", "starttablehead", "starttables", "starttabletail", "starttabletext", "starttabulate", "starttabulatehead", "starttabulatetail", "starttagged", "starttaglabeltext", "starttexcode", "starttexdefinition", "starttext", "starttextbackground", "starttextbackgroundmanual", "starttextcolor", "starttextcolorintent", "starttextdisplay", "starttextflow", "starttextmakeup", "starttextrule", "startthematrix", "starttimesint", "starttiming", "starttitle", "starttokenlist", "starttokens", "starttransparent", "starttypescript", "starttypescriptcollection", "starttyping", "startuniqueMPgraphic", "startuniqueMPpagegraphic", "startunittext", "startunpacked", "startupperint", "startusableMPgraphic", "startuseMPgraphic", "startusemathstyleparameter", "startuserdata", "startusingbtxspecification", "startvbox", "startvboxregister", "startvboxtohbox", "startvboxtohboxseparator", "startviewerlayer", "startvtop", "startvtopregister", "startxcell", "startxcellgroup", "startxcolumn", "startxgroup", "startxmldisplayverbatim", "startxmlinlineverbatim", "startxmlraw", "startxmlsetups", "startxrow", "startxrowgroup", "startxtable", "startxtablebody", "startxtablefoot", "startxtablehead", "startxtablenext", "stligature", "stopJScode", "stopJSpreamble", "stopLUA", "stopMP", "stopMPclip", "stopMPcode", "stopMPdefinitions", "stopMPdrawing", "stopMPenvironment", "stopMPextensions", "stopMPinclusions", "stopMPinitializations", "stopMPpage", "stopMPpositiongraphic", "stopMPpositionmethod", "stopMPrun", "stopPARSEDXML", "stopTABLE", "stopTABLEbody", "stopTABLEfoot", "stopTABLEhead", "stopTABLEnested", "stopTABLEnext", "stopTABLEsection", "stopTC", "stopTD", "stopTDs", "!
 stopTEX", "stopTEXpage", "stopTH", "stopTN", "stopTR", "stopTRs", "stopTX", "stopTY", "stopXML", "stopalign", "stopalignment", "stopallmodes", "stopalternate", "stopaodownintc", "stopaointc", "stopappendices", "stoparrangedpages", "stopasciimode", "stopaside", "stopattachment", "stopbackground", "stopbackmatter", "stopbar", "stopbarint", "stopbbordermatrix", "stopbigbottom", "stopbigcap", "stopbigcup", "stopbigdoublevee", "stopbigdoublewedge", "stopbigodot", "stopbigoplus", "stopbigotimes", "stopbigreversesolidus", "stopbigsolidus", "stopbigsqcap", "stopbigsqcup", "stopbigtimes", "stopbigtop", "stopbigudot", "stopbiguplus", "stopbigvee", "stopbigwedge", "stopbitmapimage", "stopblackboardsum", "stopblockquote", "stopbodymatter", "stopbordermatrix", "stopboxedcolumns", "stopboxexport", "stopbtxlabeltext", "stopbtxrenderingdefinitions", "stopbuffer", "stopcapint", "stopcases", "stopcatcodetable", "stopcenteraligned", "stopchapter", "stopcharacteralign", "stopcheckedfences", "stopchemical", "stopchemicaltext", "stopcirclepoleinsideintc", "stopcirclepoleoutsideintc", "stopcollect", "stopcollecting", "stopcolor", "stopcolorintent", "stopcoloronly", "stopcolorset", "stopcolumns", "stopcolumnset", "stopcolumnsetspan", "stopcombination", "stopcomment", "stopcomponent", "stopcontextcode", "stopcontextdefinitioncode", "stopcoprod", "stopctxfunction", "stopctxfunctiondefinition", "stopcupint", "stopcurrentcolor", "stopcurrentlistentrywrapper", "stopdelimited", "stopdelimitedtext", "stopdisplaymath", "stopdmath", "stopdocument", "stopdoublebarint", "stopeffect", "stopelement", "stopembeddedxtable", "stopendnote", "stopendofline", "stopenvironment", "stopequationsystem", "stopexceptions", "stopexpanded", "stopexpandedcollect", "stopextendedcatcodetable", "stopexternalfigurecollection", "stopfacingfloat", "stopfact", "stopfigure", "stopfiguretext", "stopfittingpage", "stopfixed", "stopfloatcombination", "stopfont", "stopfontclass", "stopfontsolution", "stopfootnote", "stopformula", "stopformulacombination", "stopformulas", "st!
 opframed", "stopframedcell", "stopframedcontent", "stopframedrow", "stopframedtable", "stopframedtext", "stopfrontmatter", "stopfullouterjoin", "stopgoto", "stopgraphictext", "stopgridsnapping", "stophanging", "stophbox", "stophboxestohbox", "stophboxregister", "stophead", "stopheadtext", "stophelptext", "stophiddencontent", "stophiding", "stophighlight", "stophookleftarrowint", "stophyphenation", "stopiiiint", "stopiiiintegral", "stopiiint", "stopiiintegral", "stopiint", "stopiintegral", "stopimath", "stopindentation", "stopindentedtext", "stopint", "stopintc", "stopintegral", "stopinteraction", "stopinteractionmenu", "stopinterface", "stopintermezzotext", "stopintertext", "stopitem", "stopitemgroup", "stopitemgroupcolumns", "stopitemize", "stopitemizetable", "stopknockout", "stoplabeltext", "stoplanguage", "stoplayout", "stopleftaligned", "stopleftouterjoin", "stoplegend", "stoplequationsystem", "stopline", "stoplinealignment", "stoplinecorrection", "stoplinefiller", "stoplinenote", "stoplinenumbering", "stoplines", "stoplinetable", "stoplinetablebody", "stoplinetablecell", "stoplinetablehead", "stoplocalbox", "stoplocalboxrange", "stoplocalfootnotes", "stoplocalheadsetup", "stoplocallinecorrection", "stoplocalnotes", "stoplocalsetups", "stoplowerint", "stoplua", "stopluacode", "stopluaparameterset", "stopluasetups", "stopmakeup", "stopmarginblock", "stopmarginrule", "stopmarkedcontent", "stopmarkpages", "stopmatch", "stopmathalignment", "stopmathcases", "stopmathematics", "stopmathexport", "stopmathfenced", "stopmathlabeltext", "stopmathmatrix", "stopmathmode", "stopmathstyle", "stopmatrices", "stopmatrix", "stopmaxaligned", "stopmdformula", "stopmidaligned", "stopmiddlealigned", "stopmiddlemakeup", "stopmixedcolumns", "stopmode", "stopmodeset", "stopmodtwosum", "stopmodule", "stopmoduletestsection", "stopmpformula", "stopmulticolumns", "stopnamedformula", "stopnamedmatrix", "stopnamednotation", "stopnamedsection", "stopnamedsubformulas", "stopnamedtyping", "stopnarrow", "stopnarrower", "stopnegative", "stopn!
 icelyfilledbox", "stopnointerference", "stopnotallmodes", "stopnotext", "stopnotmode", "stopoiiint", "stopoiint", "stopoint", "stopointc", "stopoperatortext", "stopopposite", "stopoutputstream", "stopoutputsubstream", "stopoverlay", "stopoverprint", "stoppacked", "stoppageblock", "stoppagecolumns", "stoppagecomment", "stoppagefigure", "stoppagelayout", "stoppagemakeup", "stoppar", "stopparagraph", "stopparagraphs", "stopparagraphscell", "stopparagraphshape", "stopparbuilder", "stoppart", "stoppath", "stopplacechemical", "stopplacefigure", "stopplacefloat", "stopplaceformula", "stopplacegraphic", "stopplaceintermezzo", "stopplacelegend", "stopplacepairedbox", "stopplacetable", "stoppositioning", "stoppositionoverlay", "stoppositive", "stoppostponing", "stoppostponingnotes", "stopprefixtext", "stopprerollpageblock", "stopprocessassignmentcommand", "stopprocessassignmentlist", "stopprocesscommacommand", "stopprocesscommalist", "stopprod", "stopproduct", "stopprofile", "stopproject", "stopprotect", "stopprotectedcolors", "stoppublication", "stoppunctuation", "stopquotation", "stopquote", "stoprandomized", "stoprandomseed", "stopraw", "stoprawsetups", "stopreadingfile", "stoprectangularpoleintc", "stopreferenceprefix", "stopregime", "stoprequationsystem", "stopreusableMPgraphic", "stoprightaligned", "stoprightouterjoin", "stopruby", "stopscript", "stopsdformula", "stopsection", "stopsectionblock", "stopsectionblockenvironment", "stopsectionlevel", "stopsemicirclepoleintc", "stopsetups", "stopshapebox", "stopshapedparagraph", "stopshapetext", "stopshift", "stopshowbreakpoints", "stopshowrivers", "stopsidebar", "stopsimplecolumns", "stopslashint", "stopspecialitem", "stopspeech", "stopspformula", "stopsplittext", "stopspread", "stopsquareintc", "stopstacking", "stopstackingsteps", "stopstandardmakeup", "stopstaticMPfigure", "stopstaticMPgraphic", "stopstrictinspectnextcharacter", "stopstrut", "stopstyle", "stopsubformulas", "stopsubject", "stopsubjectlevel", "stopsubnumberinghere", "stopsubsection", "stopsubsentence", !
 "stopsubstack", "stopsubsubject", "stopsubsubsection", "stopsubsubsubject", "stopsubsubsubsection", "stopsubsubsubsubject", "stopsubsubsubsubsection", "stopsubsubsubsubsubject", "stopsuffixtext", "stopsum", "stopsumint", "stopsymbolset", "stoptable", "stoptablehead", "stoptables", "stoptabletail", "stoptabletext", "stoptabulate", "stoptabulatehead", "stoptabulatetail", "stoptagged", "stoptaglabeltext", "stoptexcode", "stoptexdefinition", "stoptext", "stoptextbackground", "stoptextbackgroundmanual", "stoptextcolor", "stoptextcolorintent", "stoptextdisplay", "stoptextflow", "stoptextmakeup", "stoptextrule", "stopthematrix", "stoptimesint", "stoptiming", "stoptitle", "stoptokenlist", "stoptokens", "stoptransparent", "stoptypescript", "stoptypescriptcollection", "stoptyping", "stopuniqueMPgraphic", "stopuniqueMPpagegraphic", "stopunittext", "stopunpacked", "stopupperint", "stopusableMPgraphic", "stopuseMPgraphic", "stopusemathstyleparameter", "stopuserdata", "stopusingbtxspecification", "stopvbox", "stopvboxregister", "stopvboxtohbox", "stopvboxtohboxseparator", "stopviewerlayer", "stopvtop", "stopvtopregister", "stopxcell", "stopxcellgroup", "stopxcolumn", "stopxgroup", "stopxmldisplayverbatim", "stopxmlinlineverbatim", "stopxmlraw", "stopxmlsetups", "stopxrow", "stopxrowgroup", "stopxtable", "stopxtablebody", "stopxtablefoot", "stopxtablehead", "stopxtablenext", "stretched", "strictdoifelsenextoptional", "strictdoifnextoptionalelse", "stripcharacter", "strippedcsname", "stripspaces", "structurelistuservariable", "structurenumber", "structuretitle", "structureuservariable", "structurevariable", "strut", "strutdp", "strutgap", "strutht", "struthtdp", "struttedbox", "strutwd", "style", "styleinstance", "subject", "subpagenumber", "subsection", "subsentence", "subset", "subseteq", "subseteqq", "subsetneq", "subsetneqq", "substituteincommalist", "subsubject", "subsubsection", "subsubsubject", "subsubsubsection", "subsubsubsubject", "subsubsubsubsection", "subsubsubsubsubject", "subtractfeature", "succ", "succapprox", "!
 succcurlyeq", "succeq", "succeqq", "succnapprox", "succneq", "succneqq", "succnsim", "succsim", "suffixlanguage", "suffixtext", "sum", "sumint", "sup", "supset", "supseteq", "supseteqq", "supsetneq", "supsetneqq", "surd", "surdradical", "swapcounts", "swapdimens", "swapface", "swapmacros", "swaptypeface", "swarrow", "switchstyleonly", "switchtobodyfont", "switchtocolor", "switchtointerlinespace", "symbol", "symbolreference", "synchronizeblank", "synchronizeindenting", "synchronizemarking", "synchronizeoutputstreams", "synchronizestrut", "synchronizewhitespace", "synctexblockfilename", "synctexresetfilename", "synctexsetfilename", "systemlog", "systemlogfirst", "systemloglast", "systemsetups", "tLeftarrow", "tLeftrightarrow", "tRightarrow", "tabulateautoline", "tabulateautorule", "tabulateline", "tabulaterule", "taggedctxcommand", "taggedlabeltexts", "taglabellanguage", "taglabeltext", "tan", "tanh", "tau", "tbinom", "tbox", "tcaron", "tcedilla", "tcommaaccent", "tcurl", "tendsto", "tequal", "test", "testandsplitstring", "testcolumn", "testfeature", "testfeatureonce", "testpage", "testpageonly", "testpagesync", "testtokens", "tex", "texdefinition", "texsetup", "textAngstrom", "textacute", "textampersand", "textasciicircum", "textasciitilde", "textat", "textbackslash", "textbar", "textbottomcomma", "textbottomdot", "textbraceleft", "textbraceright", "textbreve", "textbrokenbar", "textbullet", "textcaron", "textcedilla", "textcelsius", "textcent", "textcircledP", "textcircumflex", "textcitation", "textcite", "textcomma", "textcontrolspace", "textcurrency", "textdag", "textddag", "textdegree", "textdiaeresis", "textdiv", "textdollar", "textdong", "textdotaccent", "textellipsis", "texteuro", "textflowcollector", "textfraction", "textgrave", "texthash", "texthere", "texthorizontalbar", "texthungarumlaut", "texthyphen", "textkelvin", "textlognot", "textmacron", "textmath", "textmho", "textminus", "textmp", "textmu", "textmultiply", "textnumero", "textogonek", "textohm", "textormathchar", "textormathchars", "textounce",!
  "textpercent", "textperiod", "textplus", "textpm", "textreference", "textring", "textrule", "textslash", "textstacker", "textsterling", "texttilde", "textunderscore", "textvisiblespace", "textyen", "tfrac", "thai", "thainumerals", "thedatavalue", "thefirstcharacter", "thematrix", "thenormalizedbodyfontsize", "theorientation", "therefore", "theremainingcharacters", "theta", "thickspace", "thinrule", "thinrules", "thinspace", "thirdderivative", "thirdderivativesymbol", "thirdoffivearguments", "thirdoffourarguments", "thirdofsixarguments", "thirdofthreearguments", "thirdofthreeunexpanded", "thook", "thookleftarrow", "thookrightarrow", "thorn", "threedigitrounding", "threeeighths", "threefifths", "threeperemspace", "threequarter", "threesuperior", "tibetannumerals", "tightfitboundary", "tightfitcompensation", "tightlayer", "tilde", "tildemarked", "times", "timesint", "tinyfont", "title", "tlap", "tleftarrow", "tleftharpoondown", "tleftharpoonup", "tleftoverrightarrow", "tleftrightarrow", "tleftrightharpoons", "tmapsto", "to", "tochar", "tolinenote", "tooltip", "top", "topbox", "topleftbox", "toplinebox", "toprightbox", "topskippedbox", "tracecatcodetables", "tracedfontname", "tracedpagestate", "traceoutputroutines", "tracepositions", "trademark", "translate", "transparencycomponents", "transparent", "transpose", "transposesymbol", "trel", "triangle", "triangledown", "triangleleft", "triangleq", "triangleright", "triggergroupedcommand", "triggergroupedcommandcs", "trightarrow", "trightharpoondown", "trightharpoonup", "trightleftharpoons", "trightoverleftarrow", "triplebond", "tripleprime", "tripleprimed", "triplereltext", "triplereverseprimed", "tripleverticalbar", "truefilename", "truefontname", "tstroke", "ttraggedright", "ttriplerel", "ttwoheadleftarrow", "ttwoheadrightarrow", "turnediota", "twodigitrounding", "twofifths", "twoheaddownarrow", "twoheadleftarrow", "twoheadleftarrowtext", "twoheadrightarrow", "twoheadrightarrowtail", "twoheadrightarrowtext", "twoheaduparrow", "twosuperior", "twothirds", "tx", "txx",!
  "typ", "type", "typebuffer", "typedefinedbuffer", "typeface", "typefile", "typeinlinebuffer", "typescriptone", "typescriptprefix", "typescriptthree", "typescripttwo", "typesetbuffer", "typesetbufferonly", "typesetfile", "uacute", "ubreve", "ucaron", "uchexnumber", "uchexnumbers", "ucircumflex", "uconvertnumber", "udiaeresis", "udiaeresisacute", "udiaeresiscaron", "udiaeresisgrave", "udiaeresismacron", "udotbelow", "udots", "udoublegrave", "uedcatcodecommand", "ugrave", "uhook", "uhorn", "uhornacute", "uhorndotbelow", "uhorngrave", "uhornhook", "uhorntilde", "uhungarumlaut", "uinvertedbreve", "ulcorner", "umacron", "undefinevalue", "undepthed", "underLeftarrow", "underLeftbararrow", "underLeftrightarrow", "underRightarrow", "underRightbararrow", "underbar", "underbars", "underbartext", "underbrace", "underbracetext", "underbracket", "underbrackettext", "underdash", "underdashes", "underdot", "underdots", "undergraphic", "underleftarrow", "underleftbararrow", "underleftharpoondown", "underleftharpoonup", "underlefthookarrow", "underleftrightarrow", "underlefttailarrow", "underparent", "underparenttext", "underrandom", "underrandoms", "underrightarrow", "underrightbararrow", "underrightharpoondown", "underrightharpoonup", "underrighthookarrow", "underrighttailarrow", "underset", "understrike", "understrikes", "undertwoheadleftarrow", "undertwoheadrightarrow", "undoassign", "unexpandeddocumentvariable", "unframed", "unhhbox", "unicodechar", "unicodehexnumber", "unicodenumber", "unihex", "uniqueMPgraphic", "uniqueMPpagegraphic", "unit", "unitlanguage", "unitshigh", "unitslow", "unittext", "unknown", "unknownchar", "unprotected", "unregisterhyphenationpattern", "unregisterparwrapper", "unspaceafter", "unspaceargument", "unspaced", "unspacestring", "unstackscripts", "untexargument", "untexcommand", "uogonek", "upand", "uparrow", "updasharrow", "updateparagraphdemerits", "updateparagraphpenalties", "updateparagraphproperties", "updateparagraphshapes", "updownarrow", "updownarrowbar", "updownarrows", "upharpoonleft", "u!
 pharpoonright", "uplus", "uppercased", "uppercasestring", "uppercasing", "upperint", "upperleftdoubleninequote", "upperleftdoublesixquote", "upperleftsingleninequote", "upperleftsinglesixquote", "upperrightdoubleninequote", "upperrightdoublesixquote", "upperrightsingleninequote", "upperrightsinglesixquote", "upsilon", "upuparrows", "upwhitearrow", "urcorner", "uring", "url", "useJSscripts", "useMPenvironmentbuffer", "useMPgraphic", "useMPlibrary", "useMPrun", "useMPvariables", "useURL", "usealignparameter", "useblankparameter", "useblocks", "usebodyfont", "usebodyfontparameter", "usebtxdataset", "usebtxdefinitions", "usecitation", "usecolors", "usecomponent", "usedadaptivealternative", "usedadaptivebox", "usedadaptivecolor", "usedadaptivedepth", "usedadaptiveheight", "usedadaptivehsize", "usedadaptiveline", "usedadaptivetotal", "usedadaptivewidth", "usedirectory", "usedummycolorparameter", "usedummystyleandcolor", "usedummystyleparameter", "useenvironment", "useexternaldocument", "useexternalfigure", "useexternalrendering", "usefigurebase", "usefile", "usefontpath", "usegridparameter", "usehyphensparameter", "useindentingparameter", "useindentnextparameter", "useinterlinespaceparameter", "uselanguageparameter", "uselist", "useluamodule", "useluatable", "usemathstyleparameter", "usemodule", "useproduct", "useprofileparameter", "useproject", "usereferenceparameter", "useregister", "userpagenumber", "usesetupsparameter", "usestaticMPfigure", "usesubpath", "usesymbols", "usetexmodule", "usetypescript", "usetypescriptfile", "useurl", "usezipfile", "utfchar", "utflower", "utfupper", "utilde", "utilityregisterlength", "vDash", "validassignment", "varTheta", "varepsilon", "varkappa", "varleftopeninterval", "varnothing", "varopeninterval", "varphi", "varpi", "varrho", "varrightopeninterval", "varsigma", "vartheta", "vboxreference", "vdash", "vdots", "vec", "vee", "veebar", "veeeq", "verbatim", "verbatimstring", "verbosenumber", "version", "vert", "verticalgrowingbar", "verticalpositionbar", "veryraggedcenter", "veryragge!
 dleft", "veryraggedright", "vfrac", "vglue", "viewerlayer", "vl", "vmatrix", "vpackbox", "vpackedbox", "vphantom", "vpos", "vsmash", "vsmashbox", "vsmashed", "vspace", "vspacing", "vvmatrix", "vvvmatrix", "wcircumflex", "wdofstring", "wedge", "wedgeeq", "weekday", "whitearrowupfrombar", "wideacute", "widebar", "widebreve", "widecheck", "widedddot", "wideddot", "widedot", "widegrave", "widehat", "wideoverleftarrow", "wideoverleftharpoon", "wideoverleftrightarrow", "wideoverrightarrow", "wideoverrightharpoon", "widering", "widetilde", "wideunderbar", "wideunderleftarrow", "wideunderleftharpoon", "wideunderleftrightarrow", "wideunderrightarrow", "wideunderrightharpoon", "wideundertilde", "widthofstring", "widthspanningtext", "wipedtokens", "wipetokens", "withoutpt", "word", "wordright", "words", "wordtonumber", "wp", "wr", "writebetweenlist", "writedatatolist", "writestatus", "writetolist", "xLeftarrow", "xLeftrightarrow", "xRightarrow", "xdefconvertedargument", "xequal", "xfrac", "xhookleftarrow", "xhookrightarrow", "xi", "xleftarrow", "xleftharpoondown", "xleftharpoonup", "xleftoverrightarrow", "xleftrightarrow", "xleftrightharpoons", "xlongleftarrow", "xlongleftrightarrow", "xlongrightarrow", "xmapsto", "xmladdindex", "xmlafterdocumentsetup", "xmlaftersetup", "xmlall", "xmlappenddocumentsetup", "xmlappendsetup", "xmlapplyselectors", "xmlatt", "xmlattdef", "xmlattribute", "xmlattributedef", "xmlbadinclusions", "xmlbeforedocumentsetup", "xmlbeforesetup", "xmlchainatt", "xmlchainattdef", "xmlchecknamespace", "xmlcommand", "xmlconcat", "xmlconcatrange", "xmlcontext", "xmlcount", "xmldata", "xmldefaulttotext", "xmldelete", "xmldepth", "xmldirect", "xmldirectives", "xmldirectivesafter", "xmldirectivesbefore", "xmldisplayverbatim", "xmldocument", "xmldoif", "xmldoifatt", "xmldoifelse", "xmldoifelseatt", "xmldoifelseempty", "xmldoifelseselfempty", "xmldoifelsetext", "xmldoifelsevalue", "xmldoifempty", "xmldoifemptyelse", "xmldoifnot", "xmldoifnotatt", "xmldoifnotempty", "xmldoifnotselfempty", "xmldoifnottext", "xmldoifs!
 elfempty", "xmldoifselfemptyelse", "xmldoiftext", "xmldoiftextelse", "xmldoifvalueelse", "xmlelement", "xmlfileline", "xmlfilename", "xmlfilter", "xmlfirst", "xmlflush", "xmlflushcontext", "xmlflushdocumentsetups", "xmlflushlinewise", "xmlflushpure", "xmlflushsetups", "xmlflushspacewise", "xmlflushtext", "xmlfunction", "xmlinclude", "xmlincludeoptions", "xmlinclusion", "xmlinclusionbase", "xmlinclusions", "xmlindex", "xmlinfo", "xmlinjector", "xmlinlineprettyprint", "xmlinlineprettyprinttext", "xmlinlineverbatim", "xmlinstalldirective", "xmllast", "xmllastatt", "xmllastmatch", "xmllastpar", "xmlload", "xmlloadbuffer", "xmlloaddata", "xmlloaddirectives", "xmlloadfile", "xmlloadonly", "xmlmain", "xmlmapval", "xmlmapvalue", "xmlmatch", "xmlname", "xmlnamespace", "xmlnonspace", "xmlpar", "xmlparam", "xmlpath", "xmlpos", "xmlposition", "xmlprependdocumentsetup", "xmlprependsetup", "xmlprettyprint", "xmlprettyprinttext", "xmlprocess", "xmlprocessbuffer", "xmlprocessdata", "xmlprocessfile", "xmlpure", "xmlraw", "xmlrefatt", "xmlregisterdocumentsetup", "xmlregistereddocumentsetups", "xmlregisteredsetups", "xmlregisterns", "xmlregistersetup", "xmlremapname", "xmlremapnamespace", "xmlremovedocumentsetup", "xmlremovesetup", "xmlresetdocumentsetups", "xmlresetinjectors", "xmlresetsetups", "xmls", "xmlsave", "xmlsetatt", "xmlsetattribute", "xmlsetentity", "xmlsetfunction", "xmlsetinjectors", "xmlsetpar", "xmlsetparam", "xmlsetsetup", "xmlsetup", "xmlshow", "xmlsnippet", "xmlstrip", "xmlstripanywhere", "xmlstripeverything", "xmlstripnolines", "xmlstripped", "xmlstrippednolines", "xmltag", "xmltexatt", "xmltexentity", "xmltext", "xmltobuffer", "xmltobuffertextonly", "xmltobufferverbose", "xmltofile", "xmltoparameters", "xmlval", "xmlvalue", "xmlverbatim", "xmlw", "xrel", "xrightarrow", "xrightharpoondown", "xrightharpoonup", "xrightleftharpoons", "xrightoverleftarrow", "xsplitstring", "xtriplerel", "xtwoheadleftarrow", "xtwoheadrightarrow", "xxfrac", "xypos", "yacute", "ycircumflex", "ydiaeresis", "ydotbelow", "yen", "ygrave",!
  "yhook", "yiddishnumerals", "ymacron", "ytilde", "zacute", "zcaron", "zdotaccent", "zeronumberconversion", "zerowidthnobreakspace", "zerowidthspace", "zeta", "zhook", "zstroke", "zwj", "zwnj" },
  ["en"]={},
 }
\ No newline at end of file

Modified: trunk/Master/texmf-dist/context/data/scite/context/lexers/data/scite-context-data-metafun.lua
===================================================================
--- trunk/Master/texmf-dist/context/data/scite/context/lexers/data/scite-context-data-metafun.lua	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/context/data/scite/context/lexers/data/scite-context-data-metafun.lua	2025-02-19 22:48:50 UTC (rev 74156)
@@ -1,4 +1,4 @@
 return {
- ["commands"]={ "loadfile", "loadimage", "loadmodule", "dispose", "nothing", "transparency", "tolist", "topath", "tocycle", "sqr", "log", "ln", "exp", "inv", "pow", "pi", "radian", "tand", "cotd", "sin", "cos", "tan", "cot", "atan", "asin", "acos", "invsin", "invcos", "invtan", "acosh", "asinh", "sinh", "cosh", "tanh", "zmod", "paired", "tripled", "unitcircle", "fulldiamond", "unitdiamond", "fullsquare", "unittriangle", "fulltriangle", "unitoctagon", "fulloctagon", "unithexagon", "fullhexagon", "llcircle", "lrcircle", "urcircle", "ulcircle", "tcircle", "bcircle", "lcircle", "rcircle", "lltriangle", "lrtriangle", "urtriangle", "ultriangle", "uptriangle", "downtriangle", "lefttriangle", "righttriangle", "triangle", "smoothed", "cornered", "superellipsed", "randomized", "randomizedcontrols", "squeezed", "enlonged", "shortened", "punked", "curved", "unspiked", "simplified", "blownup", "stretched", "enlarged", "leftenlarged", "topenlarged", "rightenlarged", "bottomenlarged", "crossed", "laddered", "randomshifted", "interpolated", "perpendicular", "paralleled", "cutends", "peepholed", "llenlarged", "lrenlarged", "urenlarged", "ulenlarged", "llmoved", "lrmoved", "urmoved", "ulmoved", "rightarrow", "leftarrow", "centerarrow", "drawdoublearrows", "boundingbox", "innerboundingbox", "outerboundingbox", "pushboundingbox", "popboundingbox", "boundingradius", "boundingcircle", "boundingpoint", "crossingunder", "insideof", "outsideof", "bottomboundary", "leftboundary", "topboundary", "rightboundary", "xsized", "ysized", "xysized", "sized", "xyscaled", "intersection_point", "intersection_found", "penpoint", "bbwidth", "bbheight", "withshade", "withcircularshade", "withlinearshade", "defineshade", "shaded", "shadedinto", "withshadecolors", "withshadedomain", "withshademethod", "withshadefactor", "withshadevector", "withshadecenter", "withshadedirection", "withshaderadius", "withshadetransform", "withshadecenterone", "withshadecentertwo", "withshadestep", "withshadefraction", "withshadeorigin", "shownshadevector", "shown!
 shadeorigin", "shownshadedirection", "shownshadecenter", "cmyk", "spotcolor", "multitonecolor", "namedcolor", "drawfill", "undrawfill", "inverted", "uncolored", "softened", "grayed", "greyed", "onlayer", "along", "graphictext", "loadfigure", "externalfigure", "figure", "register", "outlinetext", "filloutlinetext", "drawoutlinetext", "outlinetexttopath", "checkedbounds", "checkbounds", "strut", "rule", "withmask", "bitmapimage", "colordecimals", "ddecimal", "dddecimal", "ddddecimal", "colordecimalslist", "textext", "thetextext", "rawtextext", "textextoffset", "texbox", "thetexbox", "rawtexbox", "istextext", "infotext", "rawmadetext", "validtexbox", "onetimetextext", "rawfmttext", "thefmttext", "fmttext", "onetimefmttext", "notcached", "keepcached", "verbatim", "thelabel", "label", "autoalign", "transparent", "withtransparency", "withopacity", "property", "properties", "withproperties", "asgroup", "withpattern", "withpatternscale", "withpatternfloat", "infont", "space", "crlf", "dquote", "percent", "SPACE", "CRLF", "DQUOTE", "PERCENT", "grayscale", "greyscale", "withgray", "withgrey", "colorpart", "colorlike", "readfile", "clearxy", "unitvector", "center", "epsed", "anchored", "originpath", "infinite", "break", "xstretched", "ystretched", "snapped", "pathconnectors", "function", "constructedfunction", "constructedpath", "constructedpairs", "straightfunction", "straightpath", "straightpairs", "curvedfunction", "curvedpath", "curvedpairs", "evenly", "oddly", "condition", "pushcurrentpicture", "popcurrentpicture", "arrowpath", "resetarrows", "tensecircle", "roundedsquare", "colortype", "whitecolor", "blackcolor", "basiccolors", "complementary", "complemented", "resolvedcolor", "normalfill", "normaldraw", "visualizepaths", "detailpaths", "naturalizepaths", "drawboundary", "drawwholepath", "drawpathonly", "visualizeddraw", "visualizedfill", "detaileddraw", "draworigin", "drawboundingbox", "drawpath", "drawpoint", "drawpoints", "drawcontrolpoints", "drawcontrollines", "drawpointlabels", "drawlineoptions", "drawpointopti!
 ons", "drawcontroloptions", "drawlabeloptions", "draworiginoptions", "drawboundoptions", "drawpathoptions", "resetdrawoptions", "undashed", "pencilled", "decorated", "redecorated", "undecorated", "passvariable", "passarrayvariable", "tostring", "topair", "format", "formatted", "quotation", "quote", "startpassingvariable", "stoppassingvariable", "eofill", "eoclip", "nofill", "dofill", "fillup", "eofillup", "nodraw", "dodraw", "enfill", "area", "addbackground", "shadedup", "shadeddown", "shadedleft", "shadedright", "sortlist", "copylist", "shapedlist", "listtocurves", "listtolines", "listsize", "listlast", "uniquelist", "circularpath", "squarepath", "linearpath", "theoffset", "texmode", "systemmode", "texvar", "texstr", "isarray", "prefix", "dimension", "getmacro", "getdimen", "getcount", "gettoks", "setmacro", "setdimen", "setcount", "settoks", "setglobalmacro", "setglobaldimen", "setglobalcount", "setglobaltoks", "positionpath", "positioncurve", "positionxy", "positionparagraph", "positioncolumn", "positionwhd", "positionpage", "positionregion", "positionbox", "positionx", "positiony", "positionanchor", "positioninregion", "positionatanchor", "positioncolumnbox", "overlaycolumnbox", "positioncolumnatx", "getposboxes", "getmultipars", "getpospage", "getposparagraph", "getposcolumn", "getposregion", "getposx", "getposy", "getposwidth", "getposheight", "getposdepth", "getposleftskip", "getposrightskip", "getposhsize", "getposparindent", "getposhangindent", "getposhangafter", "getposxy", "getposupperleft", "getposlowerleft", "getposupperright", "getposlowerright", "getposllx", "getposlly", "getposurx", "getposury", "wdpart", "htpart", "dppart", "texvar", "texstr", "inpath", "pointof", "leftof", "rightof", "utfnum", "utflen", "utfsub", "newhash", "disposehash", "inhash", "tohash", "fromhash", "isarray", "prefix", "isobject", "comment", "report", "lua", "lualist", "mp", "MP", "luacall", "mirrored", "mirroredabout", "xslanted", "yslanted", "scriptindex", "newscriptindex", "newcolor", "newrgbcolor", "newcmykcolor", "new!
 numeric", "newboolean", "newtransform", "newpath", "newpicture", "newstring", "newpair", "mpvard", "mpvarn", "mpvars", "mpvar", "withtolerance", "hatched", "withdashes", "processpath", "pencilled", "sortedintersectiontimes", "intersectionpath", "firstintersectionpath", "secondintersectionpath", "intersectionsfound", "cutbeforefirst", "cutafterfirst", "cutbeforelast", "cutafterlast", "xnormalized", "ynormalized", "xynormalized", "phantom", "scrutinized", "xshifted", "yshifted" },
+ ["commands"]={ "loadfile", "loadimage", "loadmodule", "dispose", "nothing", "transparency", "tolist", "topath", "tocycle", "sqr", "log", "ln", "exp", "inv", "pow", "pi", "radian", "tand", "cotd", "sin", "cos", "tan", "cot", "atan", "asin", "acos", "invsin", "invcos", "invtan", "acosh", "asinh", "sinh", "cosh", "tanh", "zmod", "paired", "tripled", "unitcircle", "fulldiamond", "unitdiamond", "fullsquare", "unittriangle", "fulltriangle", "unitoctagon", "fulloctagon", "unithexagon", "fullhexagon", "arc", "llcircle", "lrcircle", "urcircle", "ulcircle", "tcircle", "bcircle", "lcircle", "rcircle", "lltriangle", "lrtriangle", "urtriangle", "ultriangle", "uptriangle", "downtriangle", "lefttriangle", "righttriangle", "triangle", "smoothed", "cornered", "superellipsed", "randomized", "randomizedcontrols", "randomrotatedcontrols", "squeezed", "enlonged", "shortened", "punked", "curved", "unspiked", "simplified", "blownup", "stretched", "enlarged", "leftenlarged", "topenlarged", "rightenlarged", "bottomenlarged", "crossed", "laddered", "randomshifted", "interpolated", "perpendicular", "paralleled", "cutends", "peepholed", "llenlarged", "lrenlarged", "urenlarged", "ulenlarged", "llmoved", "lrmoved", "urmoved", "ulmoved", "rightarrow", "leftarrow", "centerarrow", "drawdoublearrows", "boundingbox", "innerboundingbox", "outerboundingbox", "pushboundingbox", "popboundingbox", "boundingradius", "boundingcircle", "boundingpoint", "crossingunder", "insideof", "outsideof", "bottomboundary", "leftboundary", "topboundary", "rightboundary", "xsized", "ysized", "xysized", "sized", "xyscaled", "intersection_point", "intersection_found", "penpoint", "bbwidth", "bbheight", "withshade", "withcircularshade", "withlinearshade", "defineshade", "shaded", "shadedinto", "withshadecolors", "withshadedomain", "withshademethod", "withshadefactor", "withshadevector", "withshadecenter", "withshadedirection", "withshaderadius", "withshadetransform", "withshadecenterone", "withshadecentertwo", "withshadestep", "withshadefraction", "withshadeori!
 gin", "shownshadevector", "shownshadeorigin", "shownshadedirection", "shownshadecenter", "registerluminositygroup", "applyluminositygroup", "luminositygroup", "luminosityshade", "cmyk", "spotcolor", "multitonecolor", "namedcolor", "drawfill", "undrawfill", "inverted", "uncolored", "softened", "grayed", "greyed", "dashing", "starring", "sortedpath", "uniquepath", "hascurvature", "onlayer", "along", "graphictext", "loadfigure", "externalfigure", "figure", "register", "outlinetext", "filloutlinetext", "drawoutlinetext", "outlinetexttopath", "checkedbounds", "checkbounds", "strut", "rule", "withmask", "bitmapimage", "colordecimals", "ddecimal", "dddecimal", "ddddecimal", "colordecimalslist", "textext", "thetextext", "rawtextext", "textextoffset", "texbox", "thetexbox", "rawtexbox", "istextext", "infotext", "rawmadetext", "validtexbox", "onetimetextext", "rawfmttext", "thefmttext", "fmttext", "onetimefmttext", "notcached", "keepcached", "verbatim", "thelabel", "label", "autoalign", "transparent", "withtransparency", "withopacity", "property", "properties", "withproperties", "namedstacking", "withnamedstacking", "withannotation", "asgroup", "withpattern", "withpatternscale", "withpatternfloat", "infont", "space", "crlf", "dquote", "percent", "SPACE", "CRLF", "DQUOTE", "PERCENT", "grayscale", "greyscale", "withgray", "withgrey", "colorpart", "colorlike", "readfile", "clearxy", "unitvector", "center", "epsed", "anchored", "originpath", "infinite", "break", "xstretched", "ystretched", "snapped", "pathconnectors", "function", "constructedfunction", "constructedpath", "constructedpairs", "straightfunction", "straightpath", "straightpairs", "curvedfunction", "curvedpath", "curvedpairs", "evenly", "oddly", "condition", "pushcurrentpicture", "popcurrentpicture", "arrowpath", "resetarrows", "tensecircle", "roundedsquare", "colortype", "whitecolor", "blackcolor", "basiccolors", "complementary", "complemented", "resolvedcolor", "normalfill", "normaldraw", "visualizepaths", "detailpaths", "naturalizepaths", "drawboundary", "draww!
 holepath", "drawpathonly", "visualizeddraw", "visualizedfill", "detaileddraw", "draworigin", "drawboundingbox", "drawpath", "drawpoint", "drawpoints", "drawcontrolpoints", "drawcontrollines", "drawpointlabels", "drawlineoptions", "drawpointoptions", "drawcontroloptions", "drawlabeloptions", "draworiginoptions", "drawboundoptions", "drawpathoptions", "resetdrawoptions", "undashed", "pencilled", "decorated", "redecorated", "undecorated", "passvariable", "passarrayvariable", "tostring", "topair", "format", "formatted", "quotation", "quote", "startpassingvariable", "stoppassingvariable", "eofill", "eoclip", "nofill", "dofill", "fillup", "eofillup", "nodraw", "dodraw", "enfill", "area", "addbackground", "shadedup", "shadeddown", "shadedleft", "shadedright", "sortlist", "copylist", "shapedlist", "listtocurves", "listtolines", "listsize", "listlast", "uniquelist", "circularpath", "squarepath", "linearpath", "theoffset", "texmode", "systemmode", "texvar", "texstr", "isarray", "prefix", "dimension", "getmacro", "getdimen", "getcount", "gettoks", "setmacro", "setdimen", "setcount", "settoks", "setglobalmacro", "setglobaldimen", "setglobalcount", "setglobaltoks", "positionpath", "positioncurve", "positionxy", "positionparagraph", "positioncolumn", "positionwhd", "positionpage", "positionregion", "positionbox", "positionx", "positiony", "positionanchor", "positioninregion", "positionatanchor", "positioncolumnbox", "overlaycolumnbox", "positioncolumnatx", "positioninregion", "positionpar", "getposboxes", "getmultipars", "getpospage", "getposparagraph", "getposcolumn", "getposregion", "getposx", "getposy", "getposwidth", "getposheight", "getposdepth", "getposleftskip", "getposrightskip", "getposhsize", "getposparindent", "getposhangindent", "getposhangafter", "getposxy", "getposupperleft", "getposlowerleft", "getposupperright", "getposlowerright", "getposllx", "getposlly", "getposurx", "getposury", "wdpart", "htpart", "dppart", "texvar", "texstr", "inpath", "pointof", "leftof", "rightof", "utfchr", "utfnum", "utflen", "utfsub!
 ", "newhash", "disposehash", "resethash", "inhash", "tohash", "fromhash", "isarray", "prefix", "isobject", "comment", "report", "lua", "lualist", "mp", "MP", "luacall", "mirrored", "mirroredabout", "xslanted", "yslanted", "scriptindex", "newscriptindex", "newcolor", "newrgbcolor", "newcmykcolor", "newnumeric", "newboolean", "newtransform", "newpath", "newpicture", "newstring", "newpair", "mpvard", "mpvarn", "mpvars", "mpvar", "withtolerance", "hatched", "withdashes", "processpath", "pencilled", "sortedintersectiontimes", "intersectionpath", "firstintersectionpath", "secondintersectionpath", "intersectionsfound", "cutbeforefirst", "cutafterfirst", "cutbeforelast", "cutafterlast", "xnormalized", "ynormalized", "xynormalized", "phantom", "scrutinized", "xshifted", "yshifted", "reducedpath", "reducedenvelope", "enveloped", "hasreducedcurvature", "totalarea", "penstroked", "nepstroke" },
  ["internals"]={ "nocolormodel", "greycolormodel", "graycolormodel", "rgbcolormodel", "cmykcolormodel", "shadefactor", "shadeoffset", "textextoffset", "textextanchor", "normaltransparent", "multiplytransparent", "screentransparent", "overlaytransparent", "softlighttransparent", "hardlighttransparent", "colordodgetransparent", "colorburntransparent", "darkentransparent", "lightentransparent", "differencetransparent", "exclusiontransparent", "huetransparent", "saturationtransparent", "colortransparent", "luminositytransparent", "ahvariant", "ahdimple", "ahfactor", "ahscale", "metapostversion", "maxdimensions", "drawoptionsfactor", "dq", "sq", "crossingscale", "crossingoption", "crossingdebug", "contextlmtxmode", "metafunversion", "minifunversion", "getparameters", "presetparameters", "hasparameter", "hasoption", "getparameter", "getparameterdefault", "getparametercount", "getmaxparametercount", "getparameterpath", "getparameterpen", "getparametertext", "applyparameters", "mergeparameters", "pushparameters", "popparameters", "setluaparameter", "definecolor", "record", "newrecord", "setrecord", "getrecord", "cntrecord", "anchorxy", "anchorx", "anchory", "anchorht", "anchordp", "anchorul", "anchorll", "anchorlr", "anchorur", "localanchorbox", "localanchorcell", "localanchorspan", "anchorbox", "anchorcell", "anchorspan", "matrixbox", "matrixcell", "matrixspan", "pensilcolor", "pensilstep", "uu" },
 }
\ No newline at end of file

Modified: trunk/Master/texmf-dist/context/data/scite/context/lexers/data/scite-context-data-metapost.lua
===================================================================
--- trunk/Master/texmf-dist/context/data/scite/context/lexers/data/scite-context-data-metapost.lua	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/context/data/scite/context/lexers/data/scite-context-data-metapost.lua	2025-02-19 22:48:50 UTC (rev 74156)
@@ -1,9 +1,9 @@
 return {
- ["commands"]={ "on", "off", "interpath", "upto", "downto", "beginfig", "endfig", "beginglyph", "endglyph", "beginfont", "endfont", "rotatedaround", "reflectedabout", "arrowhead", "currentpen", "currentpicture", "cuttings", "defaultfont", "extra_beginfig", "extra_endfig", "down", "evenly", "fullcircle", "halfcircle", "identity", "in", "left", "pensquare", "penrazor", "penspec", "origin", "quartercircle", "right", "unitsquare", "up", "withdots", "abs", "bbox", "ceiling", "cutafter", "cutbefore", "dir", "directionpoint", "div", "dotprod", "intersectionpoint", "inverse", "mod", "round", "unitvector", "whatever", "cutdraw", "draw", "drawarrow", "drawdblarrow", "fill", "filldraw", "drawdot", "loggingall", "interact", "tracingall", "tracingnone", "pickup", "undraw", "unfill", "unfilldraw", "buildcycle", "dashpattern", "decr", "dotlabel", "dotlabels", "drawoptions", "incr", "label", "labels", "max", "min", "thelabel", "z", "beginchar", "blacker", "capsule_end", "change_width", "define_blacker_pixels", "define_corrected_pixels", "define_good_x_pixels", "define_good_y_pixels", "define_horizontal_corrected_pixels", "define_pixels", "define_whole_blacker_pixels", "define_whole_pixels", "define_whole_vertical_blacker_pixels", "define_whole_vertical_pixels", "endchar", "extra_beginchar", "extra_endchar", "extra_setup", "font_coding_scheme", "clearxy", "clearit", "clearpen", "shipit", "font_extra_space", "exitunless", "relax", "hide", "gobble", "gobbled", "stop", "blankpicture", "counterclockwise", "tensepath", "takepower", "direction", "softjoin", "makelabel", "rotatedabout", "flex", "superellipse", "image", "nullpen", "savepen", "clearpen", "penpos", "penlabels", "range", "thru", "z", "laboff", "bye", "red", "green", "blue", "cyan", "magenta", "yellow", "black", "white", "background", "mm", "pt", "dd", "bp", "cm", "pc", "cc", "in", "dk", "es", "ts", "triplet", "quadruplet", "totransform", "bymatrix", "closedcurve", "closedlines", "primitive", "permanent", "immutable", "mutable", "frozen", "showproperty", "showhashe!
 ntry", "top", "bot", "lft", "rt", "ulft", "urt", "llft", "lrt" },
+ ["commands"]={ "on", "off", "interpath", "upto", "downto", "beginfig", "endfig", "beginglyph", "endglyph", "beginfont", "endfont", "rotatedaround", "reflectedabout", "arrowhead", "currentpen", "currentpicture", "cuttings", "defaultfont", "extra_beginfig", "extra_endfig", "down", "evenly", "fullcircle", "halfcircle", "identity", "in", "left", "pensquare", "penrazor", "penspec", "origin", "quartercircle", "right", "unitsquare", "up", "withdots", "abs", "bbox", "ceiling", "cutafter", "cutbefore", "dir", "directionpoint", "div", "dotprod", "intersectionpoint", "inverse", "mod", "round", "unitvector", "whatever", "cutdraw", "draw", "drawarrow", "drawdblarrow", "fill", "filldraw", "drawdot", "loggingall", "interact", "tracingall", "tracingnone", "pickup", "undraw", "unfill", "unfilldraw", "buildcycle", "dashpattern", "decr", "dotlabel", "dotlabels", "drawoptions", "incr", "label", "labels", "max", "min", "thelabel", "z", "beginchar", "blacker", "capsule_end", "change_width", "define_blacker_pixels", "define_corrected_pixels", "define_good_x_pixels", "define_good_y_pixels", "define_horizontal_corrected_pixels", "define_pixels", "define_whole_blacker_pixels", "define_whole_pixels", "define_whole_vertical_blacker_pixels", "define_whole_vertical_pixels", "endchar", "extra_beginchar", "extra_endchar", "extra_setup", "font_coding_scheme", "clearxy", "clearit", "clearpen", "shipit", "font_extra_space", "exitunless", "relax", "hide", "gobble", "gobbled", "stop", "blankpicture", "counterclockwise", "tensepath", "takepower", "direction", "softjoin", "makelabel", "rotatedabout", "flex", "superellipse", "image", "nullpen", "savepen", "clearpen", "penpos", "penlabels", "range", "thru", "z", "laboff", "bye", "crossprod", "red", "green", "blue", "cyan", "magenta", "yellow", "black", "white", "background", "mm", "pt", "dd", "bp", "cm", "pc", "cc", "in", "dk", "es", "ts", "triplet", "quadruplet", "totransform", "bymatrix", "closedcurve", "closedlines", "primitive", "permanent", "immutable", "mutable", "frozen", "showproperty!
 ", "showhashentry", "top", "bot", "lft", "rt", "ulft", "urt", "llft", "lrt" },
  ["disabled"]={ "verbatimtex", "troffmode" },
  ["internals"]={ "mitered", "rounded", "beveled", "butt", "squared", "eps", "epsilon", "infinity", "bboxmargin", "ahlength", "ahangle", "labeloffset", "dotlabeldiam", "defaultpen", "defaultscale", "join_radius", "charscale", "inicatcoderegime", "texcatcoderegime", "luacatcoderegime", "notcatcoderegime", "vrbcatcoderegime", "prtcatcoderegime", "ctxcatcoderegime", "txtcatcoderegime", "catcoderegime", "ditto", "EOF", "pen_lft", "pen_rt", "pen_top", "pen_bot" },
  ["metafont"]={ "autorounding", "beginchar", "blacker", "boundarychar", "capsule_def", "capsule_end", "change_width", "chardp", "chardx", "chardy", "charexists", "charext", "charht", "charic", "charlist", "charwd", "cull", "cullit", "currenttransform", "currentwindow", "define_blacker_pixels", "define_corrected_pixels", "define_good_x_pixels", "define_good_y_pixels", "define_horizontal_corrected_pixels", "define_pixels", "define_whole_blacker_pixels", "define_whole_pixels", "define_whole_vertical_blacker_pixels", "define_whole_vertical_pixels", "designsize", "display", "displaying", "endchar", "extensible", "extra_beginchar", "extra_endchar", "extra_setup", "fillin", "font_coding_scheme", "font_extra_space", "font_identifier", "font_normal_shrink", "font_normal_space", "font_normal_stretch", "font_quad", "font_size", "font_slant", "font_x_height", "fontdimen", "fontmaking", "gfcorners", "granularity", "grayfont", "headerbyte", "hppp", "hround", "imagerules", "italcorr", "kern", "labelfont", "ligtable", "lowres_fix", "makebox", "makegrid", "maketicks", "mode_def", "mode_setup", "nodisplays", "notransforms", "numspecial", "o_correction", "openit", "openwindow", "pixels_per_inch", "proofing", "proofoffset", "proofrule", "proofrulethickness", "rulepen", "screenchars", "screenrule", "screenstrokes", "screen_cols", "screen_rows", "showit", "slantfont", "smode", "smoothing", "titlefont", "totalweight", "tracingedges", "tracingpens", "turningcheck", "unitpixel", "vppp", "vround", "xoffset", "yoffset" },
- ["primitives"]={ "tracingtitles", "tracingequations", "tracingcapsules", "tracingchoices", "tracingspecs", "tracingcommands", "tracingrestores", "tracingmacros", "tracingoutput", "tracingstats", "tracingonline", "year", "month", "day", "time", "hour", "minute", "charcode", "charwd", "charht", "chardp", "charic", "pausing", "showstopping", "texscriptmode", "overloadmode", "linejoin", "linecap", "stacking", "miterlimit", "warningcheck", "truecorners", "defaultcolormodel", "restoreclipcolor", "numbersystem", "numberprecision", "jobname", "addto", "atleast", "begingroup", "controls", "curl", "delimiters", "endgroup", "everyjob", "exitif", "expandafter", "interim", "let", "newinternal", "of", "randomseed", "maxknotpool", "save", "scantokens", "runscript", "maketext", "shipout", "step", "str", "void", "tension", "to", "until", "within", "write", "btex", "verbatimtex", "etex", "def", "vardef", "primarydef", "secondarydef", "tertiarydef", "enddef", "for", "forsuffixes", "forever", "endfor", "quote", "expr", "suffix", "text", "primary", "secondary", "tertiary", "input", "endinput", "if", "fi", "else", "elseif", "true", "false", "nullpicture", "nullpen", "readstring", "pencircle", "normaldeviate", "readfrom", "closefrom", "odd", "known", "unknown", "not", "decimal", "reverse", "uncycle", "makepath", "makepen", "makenep", "convexed", "uncontrolled", "oct", "hex", "ASCII", "char", "length", "turningnumber", "xpart", "ypart", "xxpart", "xypart", "yxpart", "yypart", "redpart", "greenpart", "bluepart", "cyanpart", "magentapart", "yellowpart", "blackpart", "greypart", "colormodel", "prescriptpart", "postscriptpart", "stackingpart", "pathpart", "penpart", "dashpart", "sqrt", "mexp", "mlog", "sind", "cosd", "floor", "uniformdeviate", "llcorner", "lrcorner", "ulcorner", "urcorner", "centerof", "centerofmass", "corners", "xrange", "yrange", "deltapoint", "deltaprecontrol", "deltapostcontrol", "deltadirection", "arclength", "angle", "cycle", "nocycle", "stroked", "filled", "clipped", "grouped", "bounded", "or", "and", "sub!
 string", "subpath", "directiontime", "point", "precontrol", "postcontrol", "direction", "pathpoint", "pathprecontrol", "pathpostcontrol", "pathdirection", "penoffset", "arctime", "arcpoint", "arcpointlist", "subarclength", "mpversion", "rotated", "slanted", "scaled", "shifted", "transformed", "xscaled", "yscaled", "zscaled", "intersectiontimes", "intersectiontimeslist", "envelope", "boundingpath", "numeric", "string", "boolean", "path", "pen", "nep", "picture", "transform", "color", "rgbcolor", "cmykcolor", "pair", "end", "dump", "batchmode", "nonstopmode", "scrollmode", "errorstopmode", "silentmode", "inner", "outer", "setproperty", "showtoken", "showstats", "show", "showvariable", "showdependencies", "doublepath", "contour", "also", "withpen", "dashed", "withprescript", "withpostscript", "withstacking", "withlinecap", "withlinejoin", "withmiterlimit", "withoutcolor", "withgreyscale", "withcolor", "withrgbcolor", "withcmykcolor", "clip", "setgroup", "setbounds", "message", "errmessage", "errhelp", "graypart" },
+ ["primitives"]={ "tracingtitles", "tracingequations", "tracingcapsules", "tracingchoices", "tracingspecs", "tracingcommands", "tracingrestores", "tracingmacros", "tracingoutput", "tracingstats", "tracingonline", "year", "month", "day", "time", "hour", "minute", "charcode", "charwd", "charht", "chardp", "charic", "pausing", "showstopping", "texscriptmode", "overloadmode", "linejoin", "linecap", "stacking", "miterlimit", "warningcheck", "defaultzeroangle", "truecorners", "defaultcolormodel", "restoreclipcolor", "numbersystem", "jointolerance", "numberprecision", "jobname", "addto", "atleast", "begingroup", "controls", "curl", "delimiters", "endgroup", "everyjob", "exitif", "firstcontrol", "secondcontrol", "expandafter", "interim", "let", "newinternal", "of", "randomseed", "maxknotpool", "save", "scantokens", "runscript", "maketext", "shipout", "step", "str", "void", "tension", "to", "until", "within", "write", "btex", "verbatimtex", "etex", "def", "vardef", "primarydef", "secondarydef", "tertiarydef", "enddef", "for", "forsuffixes", "forever", "endfor", "quote", "expr", "suffix", "text", "primary", "secondary", "tertiary", "input", "endinput", "if", "fi", "else", "elseif", "true", "false", "nullpicture", "nullpen", "readstring", "pencircle", "normaldeviate", "readfrom", "closefrom", "odd", "known", "unknown", "not", "decimal", "reverse", "uncycle", "makepath", "makepen", "makenep", "convexed", "uncontrolled", "oct", "hex", "ASCII", "char", "length", "turningnumber", "xpart", "ypart", "xxpart", "xypart", "yxpart", "yypart", "redpart", "greenpart", "bluepart", "cyanpart", "magentapart", "yellowpart", "blackpart", "greypart", "colormodel", "prescriptpart", "postscriptpart", "stackingpart", "pathpart", "penpart", "dashpart", "sqrt", "mexp", "mlog", "sind", "cosd", "floor", "uniformdeviate", "llcorner", "lrcorner", "ulcorner", "urcorner", "centerof", "centerofmass", "corners", "xrange", "yrange", "deltapoint", "deltaprecontrol", "deltapostcontrol", "deltadirection", "arclength", "angle", "cycle", "nocycle", "!
 stroked", "filled", "clipped", "grouped", "bounded", "or", "and", "substring", "subpath", "directiontime", "point", "deltapoint", "pathindex", "pathlastindex", "pathlength", "pathfirst", "pathlast", "pathstate", "precontrol", "postcontrol", "direction", "pathpoint", "pathprecontrol", "pathpostcontrol", "pathdirection", "penoffset", "arctime", "arcpoint", "arcpointlist", "subarclength", "mpversion", "rotated", "slanted", "scaled", "shifted", "transformed", "xscaled", "yscaled", "zscaled", "xyscaled", "xrelative", "yrelative", "xyrelative", "xabsolute", "yabsolute", "xyabsolute", "intersectiontimes", "intersectiontimeslist", "envelope", "boundingpath", "numeric", "string", "boolean", "path", "pen", "nep", "picture", "transform", "color", "rgbcolor", "cmykcolor", "pair", "end", "dump", "batchmode", "nonstopmode", "scrollmode", "errorstopmode", "silentmode", "inner", "outer", "setproperty", "showtoken", "showstats", "show", "showvariable", "showdependencies", "doublepath", "contour", "also", "withpen", "dashed", "withprescript", "withpostscript", "withstacking", "withnestedprescript", "withnestedpostscript", "withlinecap", "withlinejoin", "withmiterlimit", "withoutcolor", "withgreyscale", "withcolor", "withrgbcolor", "withcmykcolor", "clip", "setgroup", "setbounds", "message", "errmessage", "errhelp", "lessdigits", "graypart" },
  ["shortcuts"]={ "..", "...", "--", "---", "&", "&&", "&&&", "&&&&", "\\" },
  ["tex"]={ "btex", "etex", "verbatimtex" },
 }
\ No newline at end of file

Modified: trunk/Master/texmf-dist/context/data/scite/context/lexers/data/scite-context-data-tex.lua
===================================================================
--- trunk/Master/texmf-dist/context/data/scite/context/lexers/data/scite-context-data-tex.lua	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/context/data/scite/context/lexers/data/scite-context-data-tex.lua	2025-02-19 22:48:50 UTC (rev 74156)
@@ -1,9 +1,9 @@
 return {
  ["aleph"]={ "Alephminorversion", "Alephrevision", "Alephversion" },
  ["etex"]={ "botmarks", "clubpenalties", "currentgrouplevel", "currentgrouptype", "currentifbranch", "currentiflevel", "currentiftype", "currentstacksize", "detokenize", "dimexpr", "displaywidowpenalties", "everyeof", "firstmarks", "fontchardp", "fontcharht", "fontcharic", "fontcharwd", "glueexpr", "glueshrink", "glueshrinkorder", "gluestretch", "gluestretchorder", "gluetomu", "ifcsname", "ifdefined", "iffontchar", "interactionmode", "interlinepenalties", "lastlinefit", "lastnodetype", "marks", "muexpr", "mutoglue", "numexpr", "pagediscards", "parshapedimen", "parshapeindent", "parshapelength", "predisplaydirection", "protected", "savinghyphcodes", "savingvdiscards", "scantokens", "showgroups", "showifs", "showtokens", "splitbotmarks", "splitdiscards", "splitfirstmarks", "topmarks", "tracingassigns", "tracinggroups", "tracingifs", "tracingnesting", "unexpanded", "unless", "widowpenalties" },
- ["luatex"]={ "Uabove", "Uabovewithdelims", "Uatop", "Uatopwithdelims", "Udelcode", "Udelimited", "Udelimiter", "Udelimiterover", "Udelimiterunder", "Uhextensible", "Uleft", "Umathaccent", "Umathaccentbasedepth", "Umathaccentbaseheight", "Umathaccentbottomovershoot", "Umathaccentbottomshiftdown", "Umathaccentextendmargin", "Umathaccentsuperscriptdrop", "Umathaccentsuperscriptpercent", "Umathaccenttopovershoot", "Umathaccenttopshiftup", "Umathaccentvariant", "Umathadapttoleft", "Umathadapttoright", "Umathaxis", "Umathbottomaccentvariant", "Umathchar", "Umathchardef", "Umathcode", "Umathconnectoroverlapmin", "Umathdegreevariant", "Umathdelimiterextendmargin", "Umathdelimiterovervariant", "Umathdelimiterpercent", "Umathdelimitershortfall", "Umathdelimiterundervariant", "Umathdenominatorvariant", "Umathdictdef", "Umathexheight", "Umathextrasubpreshift", "Umathextrasubprespace", "Umathextrasubshift", "Umathextrasubspace", "Umathextrasuppreshift", "Umathextrasupprespace", "Umathextrasupshift", "Umathextrasupspace", "Umathflattenedaccentbasedepth", "Umathflattenedaccentbaseheight", "Umathflattenedaccentbottomshiftdown", "Umathflattenedaccenttopshiftup", "Umathfractiondelsize", "Umathfractiondenomdown", "Umathfractiondenomvgap", "Umathfractionnumup", "Umathfractionnumvgap", "Umathfractionrule", "Umathfractionvariant", "Umathhextensiblevariant", "Umathlimitabovebgap", "Umathlimitabovekern", "Umathlimitabovevgap", "Umathlimitbelowbgap", "Umathlimitbelowkern", "Umathlimitbelowvgap", "Umathlimits", "Umathnoaxis", "Umathnolimits", "Umathnolimitsubfactor", "Umathnolimitsupfactor", "Umathnumeratorvariant", "Umathopenupdepth", "Umathopenupheight", "Umathoperatorsize", "Umathoverbarkern", "Umathoverbarrule", "Umathoverbarvgap", "Umathoverdelimiterbgap", "Umathoverdelimitervariant", "Umathoverdelimitervgap", "Umathoverlayaccentvariant", "Umathoverlinevariant", "Umathphantom", "Umathpresubshiftdistance", "Umathpresupshiftdistance", "Umathprimeraise", "Umathprimeraisecomposed", "Umathprimeshiftdrop", "Umathprimeshiftup", "!
 Umathprimespaceafter", "Umathprimevariant", "Umathprimewidth", "Umathquad", "Umathradicaldegreeafter", "Umathradicaldegreebefore", "Umathradicaldegreeraise", "Umathradicalextensibleafter", "Umathradicalextensiblebefore", "Umathradicalkern", "Umathradicalrule", "Umathradicalvariant", "Umathradicalvgap", "Umathruledepth", "Umathruleheight", "Umathskeweddelimitertolerance", "Umathskewedfractionhgap", "Umathskewedfractionvgap", "Umathsource", "Umathspaceafterscript", "Umathspacebeforescript", "Umathspacebetweenscript", "Umathstackdenomdown", "Umathstacknumup", "Umathstackvariant", "Umathstackvgap", "Umathsubscriptsnap", "Umathsubscriptvariant", "Umathsubshiftdistance", "Umathsubshiftdown", "Umathsubshiftdrop", "Umathsubsupshiftdown", "Umathsubsupvgap", "Umathsubtopmax", "Umathsupbottommin", "Umathsuperscriptsnap", "Umathsuperscriptvariant", "Umathsupshiftdistance", "Umathsupshiftdrop", "Umathsupshiftup", "Umathsupsubbottommax", "Umathtopaccentvariant", "Umathunderbarkern", "Umathunderbarrule", "Umathunderbarvgap", "Umathunderdelimiterbgap", "Umathunderdelimitervariant", "Umathunderdelimitervgap", "Umathunderlinevariant", "Umathuseaxis", "Umathvextensiblevariant", "Umathvoid", "Umathxscale", "Umathyscale", "Umiddle", "Uoperator", "Uover", "Uoverdelimiter", "Uoverwithdelims", "Uradical", "Uright", "Uroot", "Urooted", "Uskewed", "Uskewedwithdelims", "Ustartdisplaymath", "Ustartmath", "Ustartmathmode", "Ustopdisplaymath", "Ustopmath", "Ustopmathmode", "Ustretched", "Ustretchedwithdelims", "Uunderdelimiter", "Uvextensible", "additionalpageskip", "adjustspacing", "adjustspacingshrink", "adjustspacingstep", "adjustspacingstretch", "advanceby", "afterassigned", "aftergrouped", "aliased", "aligncontent", "alignmark", "alignmentcellsource", "alignmentwrapsource", "aligntab", "allcrampedstyles", "alldisplaystyles", "allmainstyles", "allmathstyles", "allscriptscriptstyles", "allscriptstyles", "allsplitstyles", "alltextstyles", "alluncrampedstyles", "allunsplitstyles", "amcode", "associateunit", "atendoffile", "atendoffiled", "a!
 tendofgroup", "atendofgrouped", "attribute", "attributedef", "automaticdiscretionary", "automatichyphenpenalty", "automigrationmode", "autoparagraphmode", "begincsname", "beginlocalcontrol", "beginmathgroup", "beginsimplegroup", "boundary", "boxadapt", "boxanchor", "boxanchors", "boxattribute", "boxdirection", "boxfinalize", "boxfreeze", "boxgeometry", "boxlimit", "boxlimitate", "boxlimitmode", "boxorientation", "boxrepack", "boxshift", "boxshrink", "boxsource", "boxstretch", "boxtarget", "boxtotal", "boxvadjust", "boxxmove", "boxxoffset", "boxymove", "boxyoffset", "catcodetable", "cdef", "cdefcsname", "cfcode", "clearmarks", "constant", "constrained", "copymathatomrule", "copymathparent", "copymathspacing", "crampeddisplaystyle", "crampedscriptscriptstyle", "crampedscriptstyle", "crampedtextstyle", "csactive", "csstring", "currentloopiterator", "currentloopnesting", "currentlysetmathstyle", "currentmarks", "dbox", "defcsname", "deferred", "detokened", "detokenized", "dimensiondef", "dimexpression", "directlua", "discretionaryoptions", "divideby", "doubleadjdemerits", "dpack", "dsplit", "edefcsname", "edivide", "edivideby", "efcode", "emergencyleftskip", "emergencyrightskip", "endlocalcontrol", "endmathgroup", "endsimplegroup", "enforced", "etoks", "etoksapp", "etokspre", "eufactor", "everybeforepar", "everymathatom", "everytab", "exceptionpenalty", "expand", "expandactive", "expandafterpars", "expandafterspaces", "expandcstoken", "expanded", "expandedafter", "expandeddetokenize", "expandedendless", "expandedloop", "expandedrepeat", "expandparameter", "expandtoken", "expandtoks", "explicitdiscretionary", "explicithyphenpenalty", "explicititaliccorrection", "explicitspace", "firstvalidlanguage", "float", "floatdef", "floatexpr", "flushmarks", "fontcharba", "fontcharta", "fontid", "fontmathcontrol", "fontspecdef", "fontspecid", "fontspecifiedname", "fontspecifiedsize", "fontspecscale", "fontspecslant", "fontspecweight", "fontspecxscale", "fontspecyscale", "fonttextcontrol", "forcedleftcorrection", "forcedrightcorr!
 ection", "formatname", "frozen", "futurecsname", "futuredef", "futureexpand", "futureexpandis", "futureexpandisap", "gdefcsname", "givenmathstyle", "gleaders", "glet", "gletcsname", "glettonothing", "gluespecdef", "glyph", "glyphdatafield", "glyphoptions", "glyphscale", "glyphscriptfield", "glyphscriptscale", "glyphscriptscriptscale", "glyphslant", "glyphstatefield", "glyphtextscale", "glyphweight", "glyphxoffset", "glyphxscale", "glyphxscaled", "glyphyoffset", "glyphyscale", "glyphyscaled", "gtoksapp", "gtokspre", "hccode", "hjcode", "hmcode", "holdingmigrations", "hpack", "hpenalty", "hyphenationmin", "hyphenationmode", "ifabsdim", "ifabsfloat", "ifabsnum", "ifarguments", "ifboolean", "ifchkdim", "ifchkdimension", "ifchknum", "ifchknumber", "ifcmpdim", "ifcmpnum", "ifcondition", "ifcramped", "ifcstok", "ifdimexpression", "ifdimval", "ifempty", "ifflags", "iffloat", "ifhaschar", "ifhastok", "ifhastoks", "ifhasxtoks", "ifinalignment", "ifincsname", "ifinsert", "ifintervaldim", "ifintervalfloat", "ifintervalnum", "iflastnamedcs", "ifmathparameter", "ifmathstyle", "ifnumexpression", "ifnumval", "ifparameter", "ifparameters", "ifrelax", "iftok", "ifzerodim", "ifzerofloat", "ifzeronum", "ignorearguments", "ignoredepthcriterion", "ignorenestedupto", "ignorepars", "ignorerest", "ignoreupto", "immediate", "immutable", "indexofcharacter", "indexofregister", "inherited", "initcatcodetable", "initialpageskip", "initialtopskip", "insertbox", "insertcopy", "insertdepth", "insertdistance", "insertheight", "insertheights", "insertlimit", "insertmaxdepth", "insertmode", "insertmultiplier", "insertpenalty", "insertprogress", "insertstorage", "insertstoring", "insertunbox", "insertuncopy", "insertwidth", "instance", "integerdef", "lastarguments", "lastatomclass", "lastboundary", "lastchkdimension", "lastchknumber", "lastleftclass", "lastloopiterator", "lastnamedcs", "lastnodesubtype", "lastpageextra", "lastparcontext", "lastpartrigger", "lastrightclass", "leftmarginkern", "letcharcode", "letcsname", "letfrozen", "letmathatomrule!
 ", "letmathparent", "letmathspacing", "letprotected", "lettolastnamedcs", "lettonothing", "linebreakcriterion", "linebreakoptional", "linebreakpasses", "linedirection", "localbrokenpenalty", "localcontrol", "localcontrolled", "localcontrolledendless", "localcontrolledloop", "localcontrolledrepeat", "localinterlinepenalty", "localleftbox", "localleftboxbox", "localmiddlebox", "localmiddleboxbox", "localpretolerance", "localrightbox", "localrightboxbox", "localtolerance", "lpcode", "luabytecode", "luabytecodecall", "luacopyinputnodes", "luadef", "luaescapestring", "luafunction", "luafunctioncall", "luatexbanner", "luatexrevision", "luatexversion", "mathatom", "mathatomglue", "mathatomskip", "mathbackwardpenalties", "mathbeginclass", "mathboundary", "mathcharclass", "mathcharfam", "mathcharslot", "mathcheckfencesmode", "mathclass", "mathdictgroup", "mathdictionary", "mathdictproperties", "mathdirection", "mathdiscretionary", "mathdisplaymode", "mathdisplaypenaltyfactor", "mathdisplayskipmode", "mathdoublescriptmode", "mathendclass", "matheqnogapstep", "mathfontcontrol", "mathforwardpenalties", "mathgluemode", "mathgroupingmode", "mathinlinepenaltyfactor", "mathleftclass", "mathlimitsmode", "mathmainstyle", "mathnolimitsmode", "mathparentstyle", "mathpenaltiesmode", "mathpretolerance", "mathrightclass", "mathrulesfam", "mathrulesmode", "mathscale", "mathscriptsmode", "mathslackmode", "mathspacingmode", "mathstack", "mathstackstyle", "mathstyle", "mathstylefontid", "mathsurroundmode", "mathsurroundskip", "maththreshold", "mathtolerance", "meaningasis", "meaningful", "meaningfull", "meaningles", "meaningless", "mugluespecdef", "multiplyby", "mutable", "nestedloopiterator", "noaligned", "noatomruling", "noboundary", "nohrule", "nomathchar", "norelax", "normalizelinemode", "normalizeparmode", "noscript", "nospaces", "nosubprescript", "nosubscript", "nosuperprescript", "nosuperscript", "novrule", "numericscale", "numericscaled", "numexpression", "optionalboundary", "orelse", "orphanpenalties", "orphanpenalty", "orunless"!
 , "outputbox", "overloaded", "overloadmode", "overshoot", "pageboundary", "pagedepth", "pageexcess", "pageextragoal", "pagefistretch", "pagelastdepth", "pagelastfilllstretch", "pagelastfillstretch", "pagelastfilstretch", "pagelastfistretch", "pagelastheight", "pagelastshrink", "pagelaststretch", "pagevsize", "parametercount", "parameterdef", "parameterindex", "parametermark", "parametermode", "parattribute", "pardirection", "parfillleftskip", "parfillrightskip", "parinitleftskip", "parinitrightskip", "parpasses", "parshapewidth", "permanent", "pettymuskip", "positdef", "postexhyphenchar", "posthyphenchar", "postinlinepenalty", "postshortinlinepenalty", "prebinoppenalty", "predisplaygapfactor", "preexhyphenchar", "prehyphenchar", "preinlinepenalty", "prerelpenalty", "preshortinlinepenalty", "previousloopiterator", "primescript", "protecteddetokenize", "protectedexpandeddetokenize", "protrudechars", "protrusionboundary", "pxdimen", "quitloop", "quitloopnow", "quitvmode", "rdivide", "rdivideby", "realign", "resetmathspacing", "restorecatcodetable", "retained", "retokenized", "rightmarginkern", "rpcode", "savecatcodetable", "scaledemwidth", "scaledexheight", "scaledextraspace", "scaledfontcharba", "scaledfontchardp", "scaledfontcharht", "scaledfontcharic", "scaledfontcharta", "scaledfontcharwd", "scaledfontdimen", "scaledinterwordshrink", "scaledinterwordspace", "scaledinterwordstretch", "scaledmathaxis", "scaledmathemwidth", "scaledmathexheight", "scaledmathstyle", "scaledslantperpoint", "scantextokens", "scriptspaceafterfactor", "scriptspacebeforefactor", "scriptspacebetweenfactor", "semiexpand", "semiexpanded", "semiprotected", "setdefaultmathcodes", "setfontid", "setmathatomrule", "setmathdisplaypostpenalty", "setmathdisplayprepenalty", "setmathignore", "setmathoptions", "setmathpostpenalty", "setmathprepenalty", "setmathspacing", "shapingpenaltiesmode", "shapingpenalty", "shiftedsubprescript", "shiftedsubscript", "shiftedsuperprescript", "shiftedsuperscript", "shortinlinemaththreshold", "shortinlineorphanpenalt!
 y", "showcodestack", "showstack", "singlelinepenalty", "snapshotpar", "spacefactormode", "spacefactorshrinklimit", "spacefactorstretchlimit", "srule", "subprescript", "subscript", "superprescript", "superscript", "supmarkmode", "swapcsvalues", "tabsize", "textdirection", "thewithoutunit", "tinymuskip", "tocharacter", "todimension", "tohexadecimal", "tointeger", "tokenized", "toksapp", "tokspre", "tolerant", "tomathstyle", "toscaled", "tosparsedimension", "tosparsescaled", "tpack", "tracingadjusts", "tracingalignments", "tracingexpressions", "tracingfullboxes", "tracinghyphenation", "tracinginserts", "tracinglevels", "tracinglists", "tracingmarks", "tracingmath", "tracingnodes", "tracingpasses", "tracingpenalties", "tsplit", "uleaders", "undent", "unexpandedendless", "unexpandedloop", "unexpandedrepeat", "unhpack", "unletfrozen", "unletprotected", "untraced", "unvpack", "variablefam", "virtualhrule", "virtualvrule", "vpack", "vpenalty", "wordboundary", "wrapuppar", "xdefcsname", "xtoks", "xtoksapp", "xtokspre" },
+ ["luatex"]={ "Uabove", "Uabovewithdelims", "Uatop", "Uatopwithdelims", "Udelcode", "Udelimited", "Udelimiter", "Udelimiterover", "Udelimiterunder", "Uhextensible", "Uleft", "Umathaccent", "Umathaccentbasedepth", "Umathaccentbaseheight", "Umathaccentbottomovershoot", "Umathaccentbottomshiftdown", "Umathaccentextendmargin", "Umathaccentsuperscriptdrop", "Umathaccentsuperscriptpercent", "Umathaccenttopovershoot", "Umathaccenttopshiftup", "Umathaccentvariant", "Umathadapttoleft", "Umathadapttoright", "Umathaxis", "Umathbottomaccentvariant", "Umathchar", "Umathchardef", "Umathcode", "Umathconnectoroverlapmin", "Umathdegreevariant", "Umathdelimiterextendmargin", "Umathdelimiterovervariant", "Umathdelimiterpercent", "Umathdelimitershortfall", "Umathdelimiterundervariant", "Umathdenominatorvariant", "Umathdictdef", "Umathexheight", "Umathextrasubpreshift", "Umathextrasubprespace", "Umathextrasubshift", "Umathextrasubspace", "Umathextrasuppreshift", "Umathextrasupprespace", "Umathextrasupshift", "Umathextrasupspace", "Umathflattenedaccentbasedepth", "Umathflattenedaccentbaseheight", "Umathflattenedaccentbottomshiftdown", "Umathflattenedaccenttopshiftup", "Umathfractiondelsize", "Umathfractiondenomdown", "Umathfractiondenomvgap", "Umathfractionnumup", "Umathfractionnumvgap", "Umathfractionrule", "Umathfractionvariant", "Umathhextensiblevariant", "Umathlimitabovebgap", "Umathlimitabovekern", "Umathlimitabovevgap", "Umathlimitbelowbgap", "Umathlimitbelowkern", "Umathlimitbelowvgap", "Umathlimits", "Umathnoaxis", "Umathnolimits", "Umathnolimitsubfactor", "Umathnolimitsupfactor", "Umathnumeratorvariant", "Umathopenupdepth", "Umathopenupheight", "Umathoperatorsize", "Umathoverbarkern", "Umathoverbarrule", "Umathoverbarvgap", "Umathoverdelimiterbgap", "Umathoverdelimitervariant", "Umathoverdelimitervgap", "Umathoverlayaccentvariant", "Umathoverlinevariant", "Umathphantom", "Umathprimeraise", "Umathprimeraisecomposed", "Umathprimeshiftdrop", "Umathprimeshiftup", "Umathprimespaceafter", "Umathprimevariant", "Umathquad",!
  "Umathradicaldegreeafter", "Umathradicaldegreebefore", "Umathradicaldegreeraise", "Umathradicalextensibleafter", "Umathradicalextensiblebefore", "Umathradicalkern", "Umathradicalrule", "Umathradicalvariant", "Umathradicalvgap", "Umathruledepth", "Umathruleheight", "Umathskeweddelimitertolerance", "Umathskewedfractionhgap", "Umathskewedfractionvgap", "Umathsource", "Umathspaceafterscript", "Umathspacebeforescript", "Umathspacebetweenscript", "Umathstackdenomdown", "Umathstacknumup", "Umathstackvariant", "Umathstackvgap", "Umathsubscriptsnap", "Umathsubscriptvariant", "Umathsubshiftdown", "Umathsubshiftdrop", "Umathsubsupshiftdown", "Umathsubsupvgap", "Umathsubtopmax", "Umathsupbottommin", "Umathsuperscriptsnap", "Umathsuperscriptvariant", "Umathsupshiftdrop", "Umathsupshiftup", "Umathsupsubbottommax", "Umathtopaccentvariant", "Umathunderbarkern", "Umathunderbarrule", "Umathunderbarvgap", "Umathunderdelimiterbgap", "Umathunderdelimitervariant", "Umathunderdelimitervgap", "Umathunderlinevariant", "Umathuseaxis", "Umathvextensiblevariant", "Umathvoid", "Umathxscale", "Umathyscale", "Umiddle", "Uoperator", "Uover", "Uoverdelimiter", "Uoverwithdelims", "Uradical", "Uright", "Uroot", "Urooted", "Uskewed", "Uskewedwithdelims", "Ustartdisplaymath", "Ustartmath", "Ustartmathmode", "Ustopdisplaymath", "Ustopmath", "Ustopmathmode", "Ustretched", "Ustretchedwithdelims", "Uunderdelimiter", "Uvextensible", "additionalpageskip", "adjacentdemerits", "adjustspacing", "adjustspacingshrink", "adjustspacingstep", "adjustspacingstretch", "advanceby", "afterassigned", "aftergrouped", "aliased", "aligncontent", "alignmark", "alignmentcellsource", "alignmentwrapsource", "aligntab", "allcrampedstyles", "alldisplaystyles", "allmainstyles", "allmathstyles", "allscriptscriptstyles", "allscriptstyles", "allsplitstyles", "alltextstyles", "alluncrampedstyles", "allunsplitstyles", "amcode", "associateunit", "atendoffile", "atendoffiled", "atendofgroup", "atendofgrouped", "attribute", "attributedef", "automaticdiscretionary", "automatichyphenpe!
 nalty", "automigrationmode", "autoparagraphmode", "balanceadjdemerits", "balancebottomskip", "balanceboundary", "balancebreakpasses", "balancechecks", "balanceemergencyshrink", "balanceemergencystretch", "balancefinalpenalties", "balancelineheight", "balancelooseness", "balancepasses", "balancepenalty", "balanceshape", "balanceshapebottomspace", "balanceshapetopspace", "balanceshapevsize", "balancetolerance", "balancetopskip", "balancevsize", "begincsname", "beginlocalcontrol", "beginmathgroup", "beginmvl", "beginsimplegroup", "bottomskip", "boundary", "boxadapt", "boxanchor", "boxanchors", "boxattribute", "boxdirection", "boxfinalize", "boxfreeze", "boxgeometry", "boxinserts", "boxlimit", "boxlimitate", "boxlimitmode", "boxmigrate", "boxorientation", "boxrepack", "boxshift", "boxshrink", "boxsource", "boxstretch", "boxsubtype", "boxtarget", "boxtotal", "boxvadjust", "boxxmove", "boxxoffset", "boxymove", "boxyoffset", "brokenpenalties", "catcodetable", "cccode", "cdef", "cdefcsname", "cfcode", "clearmarks", "constant", "constrained", "copymathatomrule", "copymathparent", "copymathspacing", "copysplitdiscards", "crampeddisplaystyle", "crampedscriptscriptstyle", "crampedscriptstyle", "crampedtextstyle", "csactive", "csnamestring", "csstring", "currentloopiterator", "currentloopnesting", "currentlysetmathstyle", "currentmarks", "dbox", "defcsname", "deferred", "detokened", "detokenized", "dimensiondef", "dimexperimental", "dimexpression", "directlua", "discretionaryoptions", "divideby", "doublepenaltymode", "dpack", "dsplit", "edefcsname", "edivide", "edivideby", "efcode", "emergencyleftskip", "emergencyrightskip", "emptyparagraphmode", "endlocalcontrol", "endmathgroup", "endmvl", "endsimplegroup", "enforced", "etexexprmode", "etoks", "etoksapp", "etokspre", "eufactor", "everybeforepar", "everymathatom", "everytab", "exapostrophechar", "exceptionpenalty", "expand", "expandactive", "expandafterpars", "expandafterspaces", "expandcstoken", "expanded", "expandedafter", "expandeddetokenize", "expandedendless", "expanded!
 loop", "expandedrepeat", "expandparameter", "expandtoken", "expandtoks", "explicitdiscretionary", "explicithyphenpenalty", "explicititaliccorrection", "explicitspace", "firstvalidlanguage", "fitnessclasses", "float", "floatdef", "floatexpr", "flushmarks", "flushmvl", "fontcharba", "fontcharta", "fontid", "fontidentifier", "fontmathcontrol", "fontspecdef", "fontspecid", "fontspecifiedname", "fontspecifiedsize", "fontspecscale", "fontspecslant", "fontspecweight", "fontspecxscale", "fontspecyscale", "fonttextcontrol", "forcedleftcorrection", "forcedrightcorrection", "formatname", "frozen", "futurecsname", "futuredef", "futureexpand", "futureexpandis", "futureexpandisap", "gdefcsname", "givenmathstyle", "gleaders", "glet", "gletcsname", "glettonothing", "gluespecdef", "glyph", "glyphdatafield", "glyphoptions", "glyphscale", "glyphscriptfield", "glyphscriptscale", "glyphscriptscriptscale", "glyphslant", "glyphstatefield", "glyphtextscale", "glyphweight", "glyphxoffset", "glyphxscale", "glyphxscaled", "glyphyoffset", "glyphyscale", "glyphyscaled", "gtoksapp", "gtokspre", "hbadnessmode", "hccode", "hjcode", "hmcode", "holdingmigrations", "hpack", "hpenalty", "hyphenationmin", "hyphenationmode", "ifabsdim", "ifabsfloat", "ifabsnum", "ifarguments", "ifboolean", "ifchkdim", "ifchkdimension", "ifchkdimexpr", "ifchknum", "ifchknumber", "ifchknumexpr", "ifcmpdim", "ifcmpnum", "ifcondition", "ifcramped", "ifcstok", "ifdimexpression", "ifdimval", "ifempty", "ifflags", "iffloat", "ifhaschar", "ifhastok", "ifhastoks", "ifhasxtoks", "ifinalignment", "ifincsname", "ifinsert", "ifintervaldim", "ifintervalfloat", "ifintervalnum", "iflastnamedcs", "iflist", "ifmathparameter", "ifmathstyle", "ifnumexpression", "ifnumval", "ifparameter", "ifparameters", "ifrelax", "iftok", "ifzerodim", "ifzerofloat", "ifzeronum", "ignorearguments", "ignoredepthcriterion", "ignorenestedupto", "ignorepars", "ignorerest", "ignoreupto", "immediate", "immutable", "indexedsubprescript", "indexedsubscript", "indexedsuperprescript", "indexedsuperscript", "inde!
 xofcharacter", "indexofregister", "inherited", "initcatcodetable", "initialpageskip", "initialtopskip", "insertbox", "insertcopy", "insertdepth", "insertdistance", "insertheight", "insertheights", "insertlimit", "insertlinedepth", "insertlineheight", "insertmaxdepth", "insertmode", "insertmultiplier", "insertpenalty", "insertprogress", "insertshrink", "insertstorage", "insertstoring", "insertstretch", "insertunbox", "insertuncopy", "insertwidth", "instance", "integerdef", "lastarguments", "lastatomclass", "lastboundary", "lastchkdimension", "lastchknumber", "lastleftclass", "lastloopiterator", "lastnamedcs", "lastnodesubtype", "lastpageextra", "lastparcontext", "lastpartrigger", "lastrightclass", "leftmarginkern", "lefttwindemerits", "letcharcode", "letcsname", "letfrozen", "letmathatomrule", "letmathparent", "letmathspacing", "letprotected", "lettolastnamedcs", "lettonothing", "linebreakchecks", "linebreakoptional", "linebreakpasses", "linedirection", "localbreakpar", "localbrokenpenalty", "localcontrol", "localcontrolled", "localcontrolledendless", "localcontrolledloop", "localcontrolledrepeat", "localinterlinepenalty", "localleftbox", "localleftboxbox", "localmiddlebox", "localmiddleboxbox", "localpretolerance", "localrightbox", "localrightboxbox", "localtolerance", "lpcode", "luaboundary", "luabytecode", "luabytecodecall", "luacopyinputnodes", "luadef", "luaescapestring", "luafunction", "luafunctioncall", "luametatexmajorversion", "luametatexminorversion", "luametatexrelease", "luatexbanner", "luatexrevision", "luatexversion", "mathatom", "mathatomglue", "mathatomskip", "mathbackwardpenalties", "mathbeginclass", "mathboundary", "mathcharclass", "mathcharfam", "mathcharslot", "mathcheckfencesmode", "mathclass", "mathdictgroup", "mathdictionary", "mathdictproperties", "mathdirection", "mathdiscretionary", "mathdisplaymode", "mathdisplaypenaltyfactor", "mathdisplayskipmode", "mathdoublescriptmode", "mathendclass", "matheqnogapstep", "mathfontcontrol", "mathforwardpenalties", "mathgluemode", "mathgroupingmode", !
 "mathinlinepenaltyfactor", "mathleftclass", "mathlimitsmode", "mathmainstyle", "mathnolimitsmode", "mathparentstyle", "mathpenaltiesmode", "mathpretolerance", "mathrightclass", "mathrulesfam", "mathrulesmode", "mathscale", "mathscriptsmode", "mathslackmode", "mathspacingmode", "mathstack", "mathstackstyle", "mathstyle", "mathstylefontid", "mathsurroundmode", "mathsurroundskip", "maththreshold", "mathtolerance", "meaningasis", "meaningful", "meaningfull", "meaningles", "meaningless", "mugluespecdef", "multiplyby", "mutable", "mvlcurrentlyactive", "nestedloopiterator", "noaligned", "noatomruling", "noboundary", "nohrule", "nomathchar", "nooutputboxerror", "norelax", "normalizelinemode", "normalizeparmode", "noscript", "nospaces", "nosubprescript", "nosubscript", "nosuperprescript", "nosuperscript", "novrule", "numericscale", "numericscaled", "numexperimental", "numexpression", "optionalboundary", "orelse", "orphanlinefactors", "orphanpenalties", "orunless", "outputbox", "overloaded", "overloadmode", "overshoot", "pageboundary", "pageexcess", "pageextragoal", "pagefistretch", "pagelastdepth", "pagelastfilllstretch", "pagelastfillstretch", "pagelastfilstretch", "pagelastfistretch", "pagelastheight", "pagelastshrink", "pagelaststretch", "pagevsize", "parametercount", "parameterdef", "parameterindex", "parametermark", "parametermode", "parattribute", "pardirection", "parfillleftskip", "parfillrightskip", "parinitleftskip", "parinitrightskip", "paroptions", "parpasses", "parpassesexception", "parshapewidth", "permanent", "pettymuskip", "positdef", "postexhyphenchar", "posthyphenchar", "postinlinepenalty", "postshortinlinepenalty", "prebinoppenalty", "predisplaygapfactor", "preexhyphenchar", "prehyphenchar", "preinlinepenalty", "prerelpenalty", "preshortinlinepenalty", "previousloopiterator", "primescript", "protecteddetokenize", "protectedexpandeddetokenize", "protrudechars", "protrusionboundary", "pxdimen", "quitloop", "quitloopnow", "quitvmode", "rdivide", "rdivideby", "realign", "resetlocalboxes", "resetmathspacing"!
 , "restorecatcodetable", "retained", "retokenized", "rightmarginkern", "righttwindemerits", "rpcode", "savecatcodetable", "scaledemwidth", "scaledexheight", "scaledextraspace", "scaledfontcharba", "scaledfontchardp", "scaledfontcharht", "scaledfontcharic", "scaledfontcharta", "scaledfontcharwd", "scaledfontdimen", "scaledinterwordshrink", "scaledinterwordspace", "scaledinterwordstretch", "scaledmathaxis", "scaledmathemwidth", "scaledmathexheight", "scaledmathstyle", "scaledslantperpoint", "scantextokens", "scriptspaceafterfactor", "scriptspacebeforefactor", "scriptspacebetweenfactor", "semiexpand", "semiexpanded", "semiprotected", "setdefaultmathcodes", "setfontid", "setmathatomrule", "setmathdisplaypostpenalty", "setmathdisplayprepenalty", "setmathignore", "setmathoptions", "setmathpostpenalty", "setmathprepenalty", "setmathspacing", "shapingpenaltiesmode", "shapingpenalty", "shortinlinemaththreshold", "shortinlineorphanpenalty", "showcodestack", "showstack", "singlelinepenalty", "snapshotpar", "spacechar", "spacefactormode", "spacefactoroverload", "spacefactorshrinklimit", "spacefactorstretchlimit", "specificationdef", "splitextraheight", "splitlastdepth", "splitlastheight", "splitlastshrink", "splitlaststretch", "srule", "subprescript", "subscript", "superprescript", "superscript", "supmarkmode", "swapcsvalues", "tabsize", "textdirection", "thewithoutunit", "tinymuskip", "tocharacter", "toddlerpenalties", "todimension", "tohexadecimal", "tointeger", "tokenized", "toksapp", "tokspre", "tolerant", "tomathstyle", "toscaled", "tosparsedimension", "tosparsescaled", "tpack", "tracingadjusts", "tracingalignments", "tracingbalancing", "tracingexpressions", "tracingfitness", "tracingfullboxes", "tracinghyphenation", "tracinginserts", "tracinglevels", "tracinglists", "tracinglooseness", "tracingmarks", "tracingmath", "tracingmvl", "tracingnodes", "tracingorphans", "tracingpasses", "tracingpenalties", "tracingtoddlers", "tsplit", "uleaders", "undent", "unexpandedendless", "unexpandedloop", "unexpandedrepeat", "unhpack",!
  "unletfrozen", "unletprotected", "untraced", "unvpack", "variablefam", "vbadnessmode", "vbalance", "vbalancedbox", "vbalanceddeinsert", "vbalanceddiscard", "vbalancedinsert", "vbalancedreinsert", "vbalancedtop", "virtualhrule", "virtualvrule", "vpack", "vpenalty", "vsplitchecks", "wordboundary", "wrapuppar", "xdefcsname", "xtoks", "xtoksapp", "xtokspre" },
  ["omega"]={ "Omegaminorversion", "Omegarevision", "Omegaversion" },
  ["pdftex"]={ "ifpdfabsdim", "ifpdfabsnum", "ifpdfprimitive", "pdfadjustspacing", "pdfannot", "pdfcatalog", "pdfcolorstack", "pdfcolorstackinit", "pdfcompresslevel", "pdfcopyfont", "pdfcreationdate", "pdfdecimaldigits", "pdfdest", "pdfdestmargin", "pdfdraftmode", "pdfeachlinedepth", "pdfeachlineheight", "pdfendlink", "pdfendthread", "pdffirstlineheight", "pdffontattr", "pdffontexpand", "pdffontname", "pdffontobjnum", "pdffontsize", "pdfgamma", "pdfgentounicode", "pdfglyphtounicode", "pdfhorigin", "pdfignoreddimen", "pdfignoreunknownimages", "pdfimageaddfilename", "pdfimageapplygamma", "pdfimagegamma", "pdfimagehicolor", "pdfimageresolution", "pdfincludechars", "pdfinclusioncopyfonts", "pdfinclusionerrorlevel", "pdfinfo", "pdfinfoomitdate", "pdfinsertht", "pdflastannot", "pdflastlinedepth", "pdflastlink", "pdflastobj", "pdflastxform", "pdflastximage", "pdflastximagepages", "pdflastxpos", "pdflastypos", "pdflinkmargin", "pdfliteral", "pdfmajorversion", "pdfmapfile", "pdfmapline", "pdfminorversion", "pdfnames", "pdfnoligatures", "pdfnormaldeviate", "pdfobj", "pdfobjcompresslevel", "pdfomitcharset", "pdfomitcidset", "pdfomitinfodict", "pdfoutline", "pdfoutput", "pdfpageattr", "pdfpagebox", "pdfpageheight", "pdfpageref", "pdfpageresources", "pdfpagesattr", "pdfpagewidth", "pdfpkfixeddpi", "pdfpkmode", "pdfpkresolution", "pdfprimitive", "pdfprotrudechars", "pdfpxdimen", "pdfrandomseed", "pdfrecompress", "pdfrefobj", "pdfrefxform", "pdfrefximage", "pdfreplacefont", "pdfrestore", "pdfretval", "pdfsave", "pdfsavepos", "pdfsetmatrix", "pdfsetrandomseed", "pdfstartlink", "pdfstartthread", "pdfsuppressoptionalinfo", "pdfsuppressptexinfo", "pdftexbanner", "pdftexrevision", "pdftexversion", "pdfthread", "pdfthreadmargin", "pdftracingfonts", "pdftrailer", "pdftrailerid", "pdfuniformdeviate", "pdfuniqueresname", "pdfvorigin", "pdfxform", "pdfxformattr", "pdfxformmargin", "pdfxformname", "pdfxformresources", "pdfximage" },
- ["tex"]={ " ", "-", "/", "above", "abovedisplayshortskip", "abovedisplayskip", "abovewithdelims", "accent", "adjdemerits", "advance", "afterassignment", "aftergroup", "atop", "atopwithdelims", "badness", "baselineskip", "batchmode", "begingroup", "belowdisplayshortskip", "belowdisplayskip", "binoppenalty", "botmark", "box", "boxmaxdepth", "brokenpenalty", "catcode", "char", "chardef", "cleaders", "clubpenalty", "copy", "count", "countdef", "cr", "crcr", "csname", "day", "deadcycles", "def", "defaulthyphenchar", "defaultskewchar", "delcode", "delimiter", "delimiterfactor", "delimitershortfall", "dimen", "dimendef", "discretionary", "displayindent", "displaylimits", "displaystyle", "displaywidowpenalty", "displaywidth", "divide", "doublehyphendemerits", "dp", "dump", "edef", "else", "emergencyextrastretch", "emergencystretch", "end", "endcsname", "endgroup", "endinput", "endlinechar", "eofinput", "eqno", "errhelp", "errmessage", "errorcontextlines", "errorstopmode", "escapechar", "everycr", "everydisplay", "everyhbox", "everyjob", "everymath", "everypar", "everyvbox", "exhyphenchar", "exhyphenpenalty", "expandafter", "fam", "fi", "finalhyphendemerits", "firstmark", "floatingpenalty", "font", "fontdimen", "fontname", "futurelet", "gdef", "global", "globaldefs", "halign", "hangafter", "hangindent", "hbadness", "hbox", "hfil", "hfill", "hfilneg", "hfuzz", "hkern", "holdinginserts", "hrule", "hsize", "hskip", "hss", "ht", "hyphenation", "hyphenchar", "hyphenpenalty", "if", "ifcase", "ifcat", "ifdim", "iffalse", "ifhbox", "ifhmode", "ifinner", "ifmmode", "ifnum", "ifodd", "iftrue", "ifvbox", "ifvmode", "ifvoid", "ifx", "ignorespaces", "indent", "input", "inputlineno", "insert", "insertpenalties", "interlinepenalty", "jobname", "kern", "language", "lastbox", "lastkern", "lastpenalty", "lastskip", "lccode", "leaders", "left", "lefthyphenmin", "leftskip", "leqno", "let", "limits", "linepenalty", "lineskip", "lineskiplimit", "long", "looseness", "lower", "lowercase", "mark", "mathaccent", "mathbin", "mathchar", "!
 mathchardef", "mathchoice", "mathclose", "mathcode", "mathinner", "mathop", "mathopen", "mathord", "mathpunct", "mathrel", "mathsurround", "maxdeadcycles", "maxdepth", "meaning", "medmuskip", "message", "middle", "mkern", "month", "moveleft", "moveright", "mskip", "multiply", "muskip", "muskipdef", "newlinechar", "noalign", "noexpand", "noindent", "nolimits", "nonscript", "nonstopmode", "nulldelimiterspace", "nullfont", "number", "omit", "or", "outer", "output", "outputpenalty", "over", "overfullrule", "overline", "overwithdelims", "pagefilllstretch", "pagefillstretch", "pagefilstretch", "pagegoal", "pageshrink", "pagestretch", "pagetotal", "par", "parfillskip", "parindent", "parshape", "parskip", "patterns", "pausing", "penalty", "postdisplaypenalty", "predisplaypenalty", "predisplaysize", "pretolerance", "prevdepth", "prevgraf", "radical", "raise", "relax", "relpenalty", "right", "righthyphenmin", "rightskip", "romannumeral", "scriptfont", "scriptscriptfont", "scriptscriptstyle", "scriptspace", "scriptstyle", "scrollmode", "setbox", "setlanguage", "sfcode", "shipout", "show", "showbox", "showboxbreadth", "showboxdepth", "showlists", "shownodedetails", "showthe", "skewchar", "skip", "skipdef", "spacefactor", "spaceskip", "span", "splitbotmark", "splitfirstmark", "splitmaxdepth", "splittopskip", "string", "tabskip", "textfont", "textstyle", "the", "thickmuskip", "thinmuskip", "time", "toks", "toksdef", "tolerance", "topmark", "topskip", "tracingcommands", "tracinglostchars", "tracingmacros", "tracingonline", "tracingoutput", "tracingpages", "tracingparagraphs", "tracingrestores", "tracingstats", "uccode", "uchyph", "unboundary", "underline", "unhbox", "unhcopy", "unkern", "unpenalty", "unskip", "unvbox", "unvcopy", "uppercase", "vadjust", "valign", "vbadness", "vbox", "vcenter", "vfil", "vfill", "vfilneg", "vfuzz", "vkern", "vrule", "vsize", "vskip", "vsplit", "vss", "vtop", "wd", "widowpenalty", "xdef", "xleaders", "xspaceskip", "year" },
+ ["tex"]={ " ", "-", "/", "above", "abovedisplayshortskip", "abovedisplayskip", "abovewithdelims", "accent", "adjdemerits", "advance", "afterassignment", "aftergroup", "atop", "atopwithdelims", "badness", "baselineskip", "batchmode", "begingroup", "belowdisplayshortskip", "belowdisplayskip", "binoppenalty", "botmark", "box", "boxmaxdepth", "brokenpenalty", "catcode", "char", "chardef", "cleaders", "clubpenalty", "copy", "count", "countdef", "cr", "crcr", "csname", "day", "deadcycles", "def", "defaulthyphenchar", "defaultskewchar", "delcode", "delimiter", "delimiterfactor", "delimitershortfall", "dimen", "dimendef", "discretionary", "displayindent", "displaylimits", "displaystyle", "displaywidowpenalty", "displaywidth", "divide", "doublehyphendemerits", "dp", "dump", "edef", "else", "emergencyextrastretch", "emergencystretch", "end", "endcsname", "endgroup", "endinput", "endlinechar", "eofinput", "eqno", "errhelp", "errmessage", "errorcontextlines", "errorstopmode", "escapechar", "everycr", "everydisplay", "everyhbox", "everyjob", "everymath", "everypar", "everyvbox", "exhyphenchar", "exhyphenpenalty", "expandafter", "fam", "fi", "finalhyphendemerits", "firstmark", "floatingpenalty", "font", "fontdimen", "fontname", "futurelet", "gdef", "global", "globaldefs", "halign", "hangafter", "hangindent", "hbadness", "hbox", "hfil", "hfill", "hfilneg", "hfuzz", "hkern", "holdinginserts", "hrule", "hsize", "hskip", "hss", "ht", "hyphenation", "hyphenchar", "hyphenpenalty", "if", "ifcase", "ifcat", "ifdim", "iffalse", "ifhbox", "ifhmode", "ifinner", "ifmmode", "ifnum", "ifodd", "iftrue", "ifvbox", "ifvmode", "ifvoid", "ifx", "ignorespaces", "indent", "input", "inputlineno", "insert", "insertpenalties", "interlinepenalty", "jobname", "kern", "language", "lastbox", "lastkern", "lastpenalty", "lastskip", "lccode", "leaders", "left", "lefthyphenmin", "leftskip", "leqno", "let", "limits", "linepenalty", "lineskip", "lineskiplimit", "long", "looseness", "lower", "lowercase", "mark", "mathaccent", "mathbin", "mathchar", "!
 mathchardef", "mathchoice", "mathclose", "mathcode", "mathinner", "mathop", "mathopen", "mathord", "mathpunct", "mathrel", "mathsurround", "maxdeadcycles", "maxdepth", "meaning", "medmuskip", "message", "middle", "mkern", "month", "moveleft", "moveright", "mskip", "multiply", "muskip", "muskipdef", "newlinechar", "noalign", "noexpand", "noindent", "nolimits", "nonscript", "nonstopmode", "nulldelimiterspace", "nullfont", "number", "omit", "or", "outer", "output", "outputpenalty", "over", "overfullrule", "overline", "overwithdelims", "pagedepth", "pagefilllstretch", "pagefillstretch", "pagefilstretch", "pagegoal", "pageshrink", "pagestretch", "pagetotal", "par", "parfillskip", "parindent", "parshape", "parskip", "patterns", "pausing", "penalty", "postdisplaypenalty", "predisplaypenalty", "predisplaysize", "pretolerance", "prevdepth", "prevgraf", "radical", "raise", "relax", "relpenalty", "right", "righthyphenmin", "rightskip", "romannumeral", "scriptfont", "scriptscriptfont", "scriptscriptstyle", "scriptspace", "scriptstyle", "scrollmode", "setbox", "setlanguage", "sfcode", "shipout", "show", "showbox", "showboxbreadth", "showboxdepth", "showlists", "shownodedetails", "showthe", "skewchar", "skip", "skipdef", "spacefactor", "spaceskip", "span", "splitbotmark", "splitfirstmark", "splitmaxdepth", "splittopskip", "string", "tabskip", "textfont", "textstyle", "the", "thickmuskip", "thinmuskip", "time", "toks", "toksdef", "tolerance", "topmark", "topskip", "tracingcommands", "tracingloners", "tracinglostchars", "tracingmacros", "tracingonline", "tracingoutput", "tracingpages", "tracingparagraphs", "tracingrestores", "tracingstats", "uccode", "uchyph", "unboundary", "underline", "unhbox", "unhcopy", "unkern", "unpenalty", "unskip", "unvbox", "unvcopy", "uppercase", "vadjust", "valign", "vbadness", "vbox", "vcenter", "vfil", "vfill", "vfilneg", "vfuzz", "vkern", "vrule", "vsize", "vskip", "vsplit", "vss", "vtop", "wd", "widowpenalty", "xdef", "xleaders", "xspaceskip", "year" },
  ["xetex"]={ "XeTeXversion" },
 }
\ No newline at end of file

Modified: trunk/Master/texmf-dist/context/data/scite/context/lexers/scite-context-lexer-lua.lua
===================================================================
--- trunk/Master/texmf-dist/context/data/scite/context/lexers/scite-context-lexer-lua.lua	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/context/data/scite/context/lexers/scite-context-lexer-lua.lua	2025-02-19 22:48:50 UTC (rev 74156)
@@ -49,6 +49,15 @@
     "__close",
     "NaN",
    "<const>", "<toclose>",
+   -- special for context documentation
+   "<t:number>", "<t:string>", "<t:boolean>", "<t:function>", "<t:integer>", "<t:table>", "<t:userdata>", "<t:nil>",
+   "<t:direct>", "<t:node>", "<t:token>", "<t:instance>",
+   "<t:false>", "<t:true>",
+   "<t:file>",
+   "<t:posit>", "<t:complex>", "<t:decimal>",
+   "<t:mp>", "<t:mpobj>",
+   "<t:pdf>", "<t:pdfobj>",
+   "<t:hybrid>", "<t:whatever>"
 }
 
 local internals = { -- __

Modified: trunk/Master/texmf-dist/context/data/scite/context/lexers/scite-context-lexer.lua
===================================================================
--- trunk/Master/texmf-dist/context/data/scite/context/lexers/scite-context-lexer.lua	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/context/data/scite/context/lexers/scite-context-lexer.lua	2025-02-19 22:48:50 UTC (rev 74156)
@@ -594,6 +594,34 @@
 
 do
 
+    -- we can load characters.lower if we can find it
+
+    local pattern = false
+    local mapping = { }
+
+    lower = function(str)
+        if not pattern and next(mapping) then
+            pattern = Cs((helpers.utfchartabletopattern(mapping)/mapping + helpers.utfcharpattern)^1)
+        end
+        return pattern and lpegmatch(pattern,str) or str
+    end
+
+    helpers.lowercasestring = lower
+
+    helpers.registermapping = function(data)
+        local l = data.lower
+        if l then
+            for k, v in next, l do
+                mapping[k] = v
+            end
+        end
+        pattern = false
+    end
+
+end
+
+do
+
   -- function patterns.exactmatch(words,case_insensitive)
   --     local characters = concat(words)
   --     local pattern = S(characters) + patterns.idtoken
@@ -762,6 +790,7 @@
                 list.min   = list.min or 3
             end
             lists[tag] = list
+            helpers.registermapping(list)
         end
         if trace then
             report("enabling spell checking for '%s' with minimum '%s'",tag,list.min)

Modified: trunk/Master/texmf-dist/context/data/scite/context/scite-context-data-context.properties
===================================================================
--- trunk/Master/texmf-dist/context/data/scite/context/scite-context-data-context.properties	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/context/data/scite/context/scite-context-data-context.properties	2025-02-19 22:48:50 UTC (rev 74156)
@@ -2,135 +2,152 @@
 zerocount minusone minustwo plusone \
 plustwo plusthree plusfour plusfive plussix \
 plusseven pluseight plusnine plusten pluseleven \
-plustwelve plussixteen plusfifty plushundred plusonehundred \
-plustwohundred plusfivehundred plusthousand plustenthousand plustwentythousand \
-medcard maxcard maxcardminusone maxiterator zeropoint \
-onepoint halfapoint onebasepoint maxcount maxdimen \
-scaledpoint thousandpoint points halfpoint zeroskip \
-centeringskip stretchingskip shrinkingskip centeringfillskip stretchingfillskip \
-shrinkingfillskip centeringfilllskip stretchingfilllskip shrinkingfilllskip zeromuskip \
-onemuskip pluscxxvii pluscxxviii pluscclv pluscclvi \
-normalpagebox binaryshiftedten binaryshiftedtwenty binaryshiftedthirty thickermuskip \
-continuationmuskip fencemuskip mathinterwordmuskip zerofloat directionlefttoright \
-directionrighttoleft endoflinetoken outputnewlinechar emptytoks empty \
-undefined prerollrun voidbox emptybox emptyvbox \
-emptyhbox bigskipamount medskipamount smallskipamount fmtname \
-fmtversion texengine texenginename texengineversion texenginefunctionality \
-luatexengine pdftexengine xetexengine unknownengine contextformat \
-contextversion contextlmtxmode contextmark mksuffix activecatcode \
-bgroup egroup endline conditionaltrue conditionalfalse \
-attributeunsetvalue statuswrite uprotationangle rightrotationangle downrotationangle \
-leftrotationangle inicatcodes ctxcatcodes texcatcodes notcatcodes \
-txtcatcodes vrbcatcodes prtcatcodes nilcatcodes luacatcodes \
-tpacatcodes tpbcatcodes xmlcatcodes ctdcatcodes rlncatcodes \
-escapecatcode begingroupcatcode endgroupcatcode mathshiftcatcode alignmentcatcode \
-endoflinecatcode parametercatcode superscriptcatcode subscriptcatcode ignorecatcode \
-spacecatcode lettercatcode othercatcode activecatcode commentcatcode \
-invalidcatcode tabasciicode newlineasciicode formfeedasciicode endoflineasciicode \
-endoffileasciicode commaasciicode spaceasciicode periodasciicode hashasciicode \
-dollarasciicode commentasciicode ampersandasciicode colonasciicode semicolonasciicode \
-backslashasciicode circumflexasciicode underscoreasciicode leftbraceasciicode barasciicode \
-rightbraceasciicode tildeasciicode delasciicode leftparentasciicode rightparentasciicode \
-lessthanasciicode morethanasciicode doublecommentsignal atsignasciicode exclamationmarkasciicode \
-questionmarkasciicode doublequoteasciicode singlequoteasciicode forwardslashasciicode primeasciicode \
-hyphenasciicode percentasciicode leftbracketasciicode rightbracketasciicode zeroasciicode \
-nineasciicode alowercaseasciicode zlowercaseasciicode hsizefrozenparcode skipfrozenparcode \
-hangfrozenparcode indentfrozenparcode parfillfrozenparcode adjustfrozenparcode protrudefrozenparcode \
-tolerancefrozenparcode stretchfrozenparcode loosenessfrozenparcode lastlinefrozenparcode linepenaltyfrozenparcode \
-clubpenaltyfrozenparcode widowpenaltyfrozenparcode displaypenaltyfrozenparcode brokenpenaltyfrozenparcode demeritsfrozenparcode \
-shapefrozenparcode linefrozenparcode hyphenationfrozenparcode shapingpenaltyfrozenparcode orphanpenaltyfrozenparcode \
-allfrozenparcode emergencyfrozenparcode parpassesfrozenparcode singlelinepenaltyfrozenparcode activemathcharcode \
-activetabtoken activeformfeedtoken activeendoflinetoken batchmodecode nonstopmodecode \
-scrollmodecode errorstopmodecode bottomlevelgroupcode simplegroupcode hboxgroupcode \
-adjustedhboxgroupcode vboxgroupcode vtopgroupcode aligngroupcode noaligngroupcode \
-outputgroupcode mathgroupcode discretionarygroupcode insertgroupcode vadjustgroupcode \
-vcentergroupcode mathabovegroupcode mathchoicegroupcode alsosimplegroupcode semisimplegroupcode \
-mathshiftgroupcode mathleftgroupcode localboxgroupcode splitoffgroupcode splitkeepgroupcode \
-preamblegroupcode alignsetgroupcode finrowgroupcode discretionarygroupcode markautomigrationcode \
-insertautomigrationcode adjustautomigrationcode preautomigrationcode postautomigrationcode charnodecode \
-hlistnodecode vlistnodecode rulenodecode insertnodecode marknodecode \
-adjustnodecode ligaturenodecode discretionarynodecode whatsitnodecode mathnodecode \
-gluenodecode kernnodecode penaltynodecode unsetnodecode mathsnodecode \
-overrulemathcontrolcode underrulemathcontrolcode radicalrulemathcontrolcode fractionrulemathcontrolcode accentskewhalfmathcontrolcode \
-accentskewapplymathcontrolcode applyordinarykernpairmathcontrolcode applyverticalitalickernmathcontrolcode applyordinaryitalickernmathcontrolcode applycharitalickernmathcontrolcode \
-reboxcharitalickernmathcontrolcode applyboxeditalickernmathcontrolcode staircasekernmathcontrolcode applytextitalickernmathcontrolcode applyscriptitalickernmathcontrolcode \
-checkspaceitalickernmathcontrolcode checktextitalickernmathcontrolcode analyzescriptnucleuscharmathcontrolcode analyzescriptnucleuslistmathcontrolcode analyzescriptnucleusboxmathcontrolcode \
-accenttopskewwithoffsetmathcontrolcode ignorekerndimensionsmathcontrolcode ignoreflataccentsmathcontrolcode extendaccentsmathcontrolcode extenddelimitersmathcontrolcode \
-normalparcontextcode vmodeparcontextcode vboxparcontextcode vtopparcontextcode vcenterparcontextcode \
-vadjustparcontextcode insertparcontextcode outputparcontextcode alignparcontextcode noalignparcontextcode \
-spanparcontextcode resetparcontextcode normalparbegincode forceparbegincode indentparbegincode \
-noindentparbegincode mathcharparbegincode charparbegincode boundaryparbegincode spaceparbegincode \
-mathparbegincode kernparbegincode hskipparbegincode unhboxparbegincode valignparbegincode \
-vruleparbegincode fixedsuperorsubscriptsmodecode fixedsuperandsubscriptsmodecode ignoreemptyscriptsmodecode ignoreemptysuperscriptsmodecode \
-ignoreemptysubscriptsmodecode ignoreemptyprimescriptsmodecode inheritclassdoublescriptmodecode discardshapekerndoublescriptmodecode realignscriptsdoublescriptmodecode \
-reorderprescriptsdoublescriptmodecode leftoriginlistanchorcode leftheightlistanchorcode leftdepthlistanchorcode rightoriginlistanchorcode \
-rightheightlistanchorcode rightdepthlistanchorcode centeroriginlistanchorcode centerheightlistanchorcode centerdepthlistanchorcode \
-halfwaytotallistanchorcode halfwayheightlistanchorcode halfwaydepthlistanchorcode halfwayleftlistanchorcode halfwayrightlistanchorcode \
-negatexlistsigncode negateylistsigncode negatelistsigncode fontslantperpoint fontinterwordspace \
-fontinterwordstretch fontinterwordshrink fontexheight fontemwidth fontextraspace \
-slantperpoint mathexheight mathemwidth interwordspace interwordstretch \
-interwordshrink exheight emwidth extraspace mathaxisheight \
-muquad startmode stopmode startnotmode stopnotmode \
-startmodeset stopmodeset doifmode doifelsemode doifmodeelse \
-doifnotmode startmodeset stopmodeset startallmodes stopallmodes \
-startnotallmodes stopnotallmodes doifallmodes doifelseallmodes doifallmodeselse \
-doifnotallmodes startenvironment stopenvironment environment startcomponent \
-stopcomponent component startlocalcomponent stoplocalcomponent startproduct \
-stopproduct product startproject stopproject project \
-starttext stoptext startnotext stopnotext startdocument \
-stopdocument documentvariable unexpandeddocumentvariable setupdocument presetdocument \
-doifelsedocumentvariable doifdocumentvariableelse doifdocumentvariable doifnotdocumentvariable startmodule \
-stopmodule usemodule usetexmodule useluamodule setupmodule \
-currentmoduleparameter moduleparameter everystarttext everystoptext everyforgetall \
-luaenvironment startTEXpage stopTEXpage enablemode disablemode \
-preventmode definemode globalenablemode globaldisablemode globalpreventmode \
-pushmode popmode typescriptone typescripttwo typescriptthree \
-mathsizesuffix mathordinarycode mathordcode mathoperatorcode mathopcode \
-mathbinarycode mathbincode mathrelationcode mathrelcode mathopencode \
-mathclosecode mathpunctuationcode mathpunctcode mathovercode mathundercode \
-mathinnercode mathradicalcode mathfractioncode mathmiddlecode mathprimecode \
-mathaccentcode mathfencedcode mathghostcode mathvariablecode mathactivecode \
-mathvcentercode mathconstructcode mathwrappedcode mathbegincode mathendcode \
-mathexplicitcode mathdivisioncode mathfactorialcode mathdimensioncode mathexperimentalcode \
-mathtextpunctuationcode mathcontinuationcode mathimaginarycode mathdifferentialcode mathexponentialcode \
-mathintegralcode mathellipsiscode mathfunctioncode mathdigitcode mathalphacode \
-mathboxcode mathchoicecode mathnothingcode mathlimopcode mathnolopcode \
-mathunsetcode mathunspacedcode mathallcode mathfakecode mathunarycode \
-mathmaybeordinarycode mathmayberelationcode mathmaybebinarycode mathnumbergroupcode mathchemicalbondcode \
-mathimplicationcode constantnumber constantnumberargument constantdimen constantdimenargument \
-constantemptyargument luastringsep !!bs !!es lefttorightmark \
-righttoleftmark lrm rlm bidilre bidirle \
-bidipop bidilro bidirlo breakablethinspace nobreakspace \
-nonbreakablespace narrownobreakspace zerowidthnobreakspace ideographicspace ideographichalffillspace \
-twoperemspace threeperemspace fourperemspace fiveperemspace sixperemspace \
-figurespace punctuationspace hairspace enquad emquad \
-zerowidthspace zerowidthnonjoiner zerowidthjoiner zwnj zwj \
-optionalspace asciispacechar softhyphen autoinsertedspace Ux \
-eUx startlmtxmode stoplmtxmode startmkivmode stopmkivmode \
-wildcardsymbol normalhyphenationcode automatichyphenationcode explicithyphenationcode syllablehyphenationcode \
-uppercasehyphenationcode collapsehyphenationcode compoundhyphenationcode strictstarthyphenationcode strictendhyphenationcode \
-automaticpenaltyhyphenationcode explicitpenaltyhyphenationcode permitgluehyphenationcode permitallhyphenationcode permitmathreplacehyphenationcode \
-forcecheckhyphenationcode lazyligatureshyphenationcode forcehandlerhyphenationcode feedbackcompoundhyphenationcode ignoreboundshyphenationcode \
-partialhyphenationcode completehyphenationcode normalizelinenormalizecode parindentskipnormalizecode swaphangindentnormalizecode \
+plustwelve plusthirteen plusfourteen plusfifteen plussixteen \
+plusfifty plushundred plusonehundred plustwohundred plusfivehundred \
+plusonehundredtwentyfive plustwohundredfifty plusthousand plustenthousand plustwentythousand \
+medcard maxcard maxcardminusone maxiterator plusonethousand \
+plustwothousand plusthreethousand plusfourthousand plusfivethousand plussixthousand \
+plusseventhousand pluseightthousand plusninethousand plusfifteenhundred plustwentyfivehundred \
+plusfortyfivehundred plusseventyfivehundred plusninetynine plusfourtytwo plustwentyfive \
+zeropoint onepoint halfapoint onebasepoint maxcount \
+maxdimen scaledpoint thousandpoint points halfpoint \
+twopoints threepoints zeroskip centeringskip stretchingskip \
+shrinkingskip centeringfillskip stretchingfillskip shrinkingfillskip centeringfilllskip \
+stretchingfilllskip shrinkingfilllskip zeromuskip onemuskip pluscxxvii \
+pluscxxviii pluscclv pluscclvi normalpagebox delayedpagebox \
+binaryshiftedten binaryshiftedtwenty binaryshiftedthirty thickermuskip continuationmuskip \
+fencemuskip mathinterwordmuskip zerofloat directionlefttoright directionrighttoleft \
+endoflinetoken outputnewlinechar emptytoks empty undefined \
+blankspace relaxedspace prerollrun voidbox emptybox \
+emptyvbox emptyhbox bigskipamount medskipamount smallskipamount \
+fmtname fmtversion texengine texenginename texengineversion \
+texenginefunctionality luatexengine pdftexengine xetexengine unknownengine \
+contextformat contextversion contextlmtxmode contextmark mksuffix \
+activecatcode bgroup egroup endline conditionaltrue \
+conditionalfalse attributeunsetvalue statuswrite uprotationangle rightrotationangle \
+downrotationangle leftrotationangle inicatcodes ctxcatcodes texcatcodes \
+notcatcodes txtcatcodes vrbcatcodes prtcatcodes nilcatcodes \
+luacatcodes tpacatcodes tpbcatcodes xmlcatcodes ctdcatcodes \
+rlncatcodes escapecatcode begingroupcatcode endgroupcatcode mathshiftcatcode \
+alignmentcatcode endoflinecatcode parametercatcode superscriptcatcode subscriptcatcode \
+ignorecatcode spacecatcode lettercatcode othercatcode activecatcode \
+commentcatcode invalidcatcode tabasciicode newlineasciicode formfeedasciicode \
+endoflineasciicode endoffileasciicode commaasciicode spaceasciicode periodasciicode \
+hashasciicode dollarasciicode commentasciicode ampersandasciicode colonasciicode \
+semicolonasciicode backslashasciicode circumflexasciicode underscoreasciicode leftbraceasciicode \
+barasciicode rightbraceasciicode tildeasciicode delasciicode leftparentasciicode \
+rightparentasciicode lessthanasciicode morethanasciicode doublecommentsignal atsignasciicode \
+exclamationmarkasciicode questionmarkasciicode doublequoteasciicode singlequoteasciicode forwardslashasciicode \
+primeasciicode hyphenasciicode percentasciicode leftbracketasciicode rightbracketasciicode \
+zeroasciicode nineasciicode alowercaseasciicode zlowercaseasciicode hsizefrozenparcode \
+skipfrozenparcode hangfrozenparcode indentfrozenparcode parfillfrozenparcode adjustfrozenparcode \
+protrudefrozenparcode tolerancefrozenparcode stretchfrozenparcode loosenessfrozenparcode lastlinefrozenparcode \
+linepenaltyfrozenparcode clubpenaltyfrozenparcode widowpenaltyfrozenparcode displaypenaltyfrozenparcode brokenpenaltyfrozenparcode \
+demeritsfrozenparcode shapefrozenparcode linefrozenparcode hyphenationfrozenparcode shapingpenaltyfrozenparcode \
+orphanpenaltyfrozenparcode toddlerpenaltyfrozenparcode emergencyfrozenparcode parpassesfrozenparcode singlelinepenaltyfrozenparcode \
+hyphenpenaltyfrozenparcode exhyphenpenaltyfrozenparcode linebreakchecksfrozenparcode twindemeritsfrozenparcode fitnessclassesfrozenparcode \
+allfrozenparcode activemathcharcode activetabtoken activeformfeedtoken activeendoflinetoken \
+batchmodecode nonstopmodecode scrollmodecode errorstopmodecode bottomlevelgroupcode \
+simplegroupcode hboxgroupcode adjustedhboxgroupcode vboxgroupcode vtopgroupcode \
+aligngroupcode noaligngroupcode outputgroupcode mathgroupcode discretionarygroupcode \
+insertgroupcode vadjustgroupcode vcentergroupcode mathabovegroupcode mathchoicegroupcode \
+alsosimplegroupcode semisimplegroupcode mathshiftgroupcode mathleftgroupcode localboxgroupcode \
+splitoffgroupcode splitkeepgroupcode preamblegroupcode alignsetgroupcode finrowgroupcode \
+discretionarygroupcode markautomigrationcode insertautomigrationcode adjustautomigrationcode preautomigrationcode \
+postautomigrationcode charnodecode hlistnodecode vlistnodecode rulenodecode \
+insertnodecode marknodecode adjustnodecode ligaturenodecode discretionarynodecode \
+whatsitnodecode mathnodecode gluenodecode kernnodecode penaltynodecode \
+unsetnodecode mathsnodecode overrulemathcontrolcode underrulemathcontrolcode radicalrulemathcontrolcode \
+fractionrulemathcontrolcode accentskewhalfmathcontrolcode accentskewapplymathcontrolcode applyordinarykernpairmathcontrolcode applyverticalitalickernmathcontrolcode \
+applyordinaryitalickernmathcontrolcode applycharitalickernmathcontrolcode reboxcharitalickernmathcontrolcode applyboxeditalickernmathcontrolcode staircasekernmathcontrolcode \
+applytextitalickernmathcontrolcode applyscriptitalickernmathcontrolcode checkspaceitalickernmathcontrolcode checktextitalickernmathcontrolcode analyzescriptnucleuscharmathcontrolcode \
+analyzescriptnucleuslistmathcontrolcode analyzescriptnucleusboxmathcontrolcode accenttopskewwithoffsetmathcontrolcode ignorekerndimensionsmathcontrolcode ignoreflataccentsmathcontrolcode \
+extendaccentsmathcontrolcode extenddelimitersmathcontrolcode normalparcontextcode vmodeparcontextcode vboxparcontextcode \
+vtopparcontextcode vcenterparcontextcode vadjustparcontextcode insertparcontextcode outputparcontextcode \
+alignparcontextcode noalignparcontextcode spanparcontextcode resetparcontextcode normalparbegincode \
+forceparbegincode indentparbegincode noindentparbegincode mathcharparbegincode charparbegincode \
+boundaryparbegincode spaceparbegincode mathparbegincode kernparbegincode hskipparbegincode \
+unhboxparbegincode valignparbegincode vruleparbegincode fixedsuperorsubscriptsmodecode fixedsuperandsubscriptsmodecode \
+ignoreemptyscriptsmodecode ignoreemptysuperscriptsmodecode ignoreemptysubscriptsmodecode ignoreemptyprimescriptsmodecode inheritclassdoublescriptmodecode \
+discardshapekerndoublescriptmodecode realignscriptsdoublescriptmodecode reorderprescriptsdoublescriptmodecode leftoriginlistanchorcode leftheightlistanchorcode \
+leftdepthlistanchorcode rightoriginlistanchorcode rightheightlistanchorcode rightdepthlistanchorcode centeroriginlistanchorcode \
+centerheightlistanchorcode centerdepthlistanchorcode halfwaytotallistanchorcode halfwayheightlistanchorcode halfwaydepthlistanchorcode \
+halfwayleftlistanchorcode halfwayrightlistanchorcode underfullbadnessmodecode loosebadnessmodecode tightbadnessmodecode \
+overfullbadnessmodecode negatexlistsigncode negateylistsigncode negatelistsigncode fontslantperpoint \
+fontinterwordspace fontinterwordstretch fontinterwordshrink fontexheight fontemwidth \
+fontextraspace slantperpoint mathexheight mathemwidth interwordspace \
+interwordstretch interwordshrink exheight emwidth extraspace \
+mathaxisheight muquad startmode stopmode startnotmode \
+stopnotmode startmodeset stopmodeset doifmode doifelsemode \
+doifmodeelse doifnotmode startmodeset stopmodeset startallmodes \
+stopallmodes startnotallmodes stopnotallmodes doifallmodes doifelseallmodes \
+doifallmodeselse doifnotallmodes startenvironment stopenvironment environment \
+startcomponent stopcomponent component startlocalcomponent stoplocalcomponent \
+startproduct stopproduct product startproject stopproject \
+project starttext stoptext startnotext stopnotext \
+startdocument stopdocument documentvariable unexpandeddocumentvariable setupdocument \
+presetdocument doifelsedocumentvariable doifdocumentvariableelse doifdocumentvariable doifnotdocumentvariable \
+startmodule stopmodule usemodule usetexmodule useluamodule \
+setupmodule currentmoduleparameter moduleparameter everystarttext everystoptext \
+everyforgetall luaenvironment startTEXpage stopTEXpage enablemode \
+disablemode preventmode definemode globalenablemode globaldisablemode \
+globalpreventmode pushmode popmode typescriptone typescripttwo \
+typescriptthree mathsizesuffix mathordinarycode mathordcode mathoperatorcode \
+mathopcode mathbinarycode mathbincode mathrelationcode mathrelcode \
+mathopencode mathclosecode mathpunctuationcode mathpunctcode mathovercode \
+mathundercode mathinnercode mathradicalcode mathfractioncode mathmiddlecode \
+mathprimecode mathaccentcode mathfencedcode mathghostcode mathvariablecode \
+mathactivecode mathvcentercode mathconstructcode mathwrappedcode mathbegincode \
+mathendcode mathexplicitcode mathdivisioncode mathfactorialcode mathdimensioncode \
+mathexperimentalcode mathtextpunctuationcode mathcontinuationcode mathimaginarycode mathdifferentialcode \
+mathexponentialcode mathintegralcode mathellipsiscode mathfunctioncode mathdigitcode \
+mathalphacode mathboxcode mathchoicecode mathnothingcode mathlimopcode \
+mathnolopcode mathunsetcode mathunspacedcode mathallcode mathfakecode \
+mathunarycode mathmaybeordinarycode mathmayberelationcode mathmaybebinarycode mathnumbergroupcode \
+mathchemicalbondcode mathimplicationcode mathnormalstylepreset mathcrampedstylepreset mathsubscriptstylepreset \
+mathsuperscriptstylepreset mathsmallstylepreset mathsmallerstylepreset mathnumeratorstylepreset mathdenominatorstylepreset \
+mathdoublesuperscriptstylepreset constantnumber constantnumberargument constantdimen constantdimenargument \
+constantemptyargument periodicshrink luastringsep !!bs !!es \
+lefttorightmark righttoleftmark lrm rlm bidilre \
+bidirle bidipop bidilro bidirlo breakablethinspace \
+nobreakspace nonbreakablespace narrownobreakspace zerowidthnobreakspace ideographicspace \
+ideographichalffillspace twoperemspace threeperemspace fourperemspace fiveperemspace \
+sixperemspace figurespace punctuationspace hairspace enquad \
+emquad zerowidthspace zerowidthnonjoiner zerowidthjoiner zwnj \
+zwj optionalspace asciispacechar softhyphen autoinsertedspace \
+Ux eUx mathstylevariantidentity mathstylevariantcramped mathstylevariantuncramped \
+startlmtxmode stoplmtxmode startmkivmode stopmkivmode wildcardsymbol \
+normalhyphenationcode automatichyphenationcode explicithyphenationcode syllablehyphenationcode uppercasehyphenationcode \
+collapsehyphenationcode compoundhyphenationcode strictstarthyphenationcode strictendhyphenationcode automaticpenaltyhyphenationcode \
+explicitpenaltyhyphenationcode permitgluehyphenationcode permitallhyphenationcode permitmathreplacehyphenationcode forcecheckhyphenationcode \
+lazyligatureshyphenationcode forcehandlerhyphenationcode feedbackcompoundhyphenationcode ignoreboundshyphenationcode partialhyphenationcode \
+completehyphenationcode replaceapostrophehyphenationcode normalizelinenormalizecode parindentskipnormalizecode swaphangindentnormalizecode \
 swapparsshapenormalizecode breakafterdirnormalizecode removemarginkernsnormalizecode clipwidthnormalizecode flattendiscretionariesnormalizecode \
-discardzerotabskipsnormalizecode flattenhleadersnormalizecode normalizeparnormalizeparcode flattenvleadersnormalizeparcode limitprevgrafnormalizeparcode \
-nopreslackclassoptioncode nopostslackclassoptioncode lefttopkernclassoptioncode righttopkernclassoptioncode leftbottomkernclassoptioncode \
-rightbottomkernclassoptioncode lookaheadforendclassoptioncode noitaliccorrectionclassoptioncode defaultmathclassoptions checkligatureclassoptioncode \
-checkitaliccorrectionclassoptioncode checkkernpairclassoptioncode flattenclassoptioncode omitpenaltyclassoptioncode unpackclassoptioncode \
-raiseprimeclassoptioncode carryoverlefttopkernclassoptioncode carryoverleftbottomkernclassoptioncode carryoverrighttopkernclassoptioncode carryoverrightbottomkernclassoptioncode \
-preferdelimiterdimensionsclassoptioncode autoinjectclassoptioncode removeitaliccorrectionclassoptioncode operatoritaliccorrectionclassoptioncode shortinlineclassoptioncode \
-pushnestingclassoptioncode popnestingclassoptioncode obeynestingclassoptioncode noitaliccorrectionglyphoptioncode nozeroitaliccorrectionglyphoptioncode \
-noexpansionglyphoptioncode noprotrusionglyphoptioncode noleftkernglyphoptioncode norightkernglyphoptioncode noleftligatureglyphoptioncode \
-norightligatureglyphoptioncode textcheckitalicglyphoptioncode mathcheckitalicglyphoptioncode nokerningcode noligaturingcode \
-noitalicscode indecentparpassclasses looseparpassclasses tightparpassclasses verylooseparpassclass \
-looseparpassclass semilooseparpassclass decentparpassclass almostdecentparpassclasses semitightparpassclass \
-tightparpassclass frozenflagcode tolerantflagcode protectedflagcode primitiveflagcode \
-permanentflagcode noalignedflagcode immutableflagcode mutableflagcode globalflagcode \
-overloadedflagcode immediateflagcode conditionalflagcode valueflagcode instanceflagcode \
-ordmathflattencode binmathflattencode relmathflattencode punctmathflattencode innermathflattencode \
-normalworddiscoptioncode preworddiscoptioncode postworddiscoptioncode preferbreakdiscoptioncode prefernobreakdiscoptioncode \
-noitaliccorrectiondiscoptioncode nozeroitaliccorrectiondiscoptioncode textcheckitalicdiscoptioncode continueifinputfile continuewhenlmtxmode \
-continuewhenmkivmode uunit 
+discardzerotabskipsnormalizecode flattenhleadersnormalizecode balanceinlinemathnormalizecode normalizeparnormalizeparcode flattenvleadersnormalizeparcode \
+limitprevgrafnormalizeparcode keepinterlinepenaltiesnormalizeparcode removetrailingspacesnormalizeparcode nopreslackclassoptioncode nopostslackclassoptioncode \
+lefttopkernclassoptioncode righttopkernclassoptioncode leftbottomkernclassoptioncode rightbottomkernclassoptioncode lookaheadforendclassoptioncode \
+noitaliccorrectionclassoptioncode defaultmathclassoptions checkligatureclassoptioncode checkitaliccorrectionclassoptioncode checkkernpairclassoptioncode \
+flattenclassoptioncode omitpenaltyclassoptioncode unpackclassoptioncode raiseprimeclassoptioncode carryoverlefttopkernclassoptioncode \
+carryoverleftbottomkernclassoptioncode carryoverrighttopkernclassoptioncode carryoverrightbottomkernclassoptioncode preferdelimiterdimensionsclassoptioncode autoinjectclassoptioncode \
+removeitaliccorrectionclassoptioncode operatoritaliccorrectionclassoptioncode shortinlineclassoptioncode pushnestingclassoptioncode popnestingclassoptioncode \
+obeynestingclassoptioncode noitaliccorrectionglyphoptioncode nozeroitaliccorrectionglyphoptioncode noexpansionglyphoptioncode noprotrusionglyphoptioncode \
+noleftkernglyphoptioncode norightkernglyphoptioncode noleftligatureglyphoptioncode norightligatureglyphoptioncode textcheckitalicglyphoptioncode \
+mathcheckitalicglyphoptioncode weightlessglyphoptioncode spacefactoroverloadglyphoptioncode checktoddlerglyphoptioncode checktwinglyphoptioncode \
+ignoretwincharactercontrolcode repeatspecificationoptioncode doublespecificationoptioncode largestspecificationoptioncode presetsspecificationoptioncode \
+integerspecificationoptioncode finalspecificationoptioncode defaultspecificationoptioncode ignorespecificationoptioncode rotatespecificationoptioncode \
+nokerningcode noligaturingcode noitalicscode allparpassclasses indecentparpassclasses \
+looseparpassclasses tightparpassclasses almostdecentparpassclasses verylooseparpassclass looseparpassclass \
+almostlooseparpassclass barelylooseparpassclass decentparpassclass verytightparpassclass tightparpassclass \
+almosttightparpassclass barelytightparpassclass frozenflagcode tolerantflagcode protectedflagcode \
+primitiveflagcode permanentflagcode noalignedflagcode immutableflagcode mutableflagcode \
+globalflagcode overloadedflagcode immediateflagcode conditionalflagcode valueflagcode \
+instanceflagcode ordmathflattencode binmathflattencode relmathflattencode punctmathflattencode \
+innermathflattencode normalworddiscoptioncode preworddiscoptioncode postworddiscoptioncode preferbreakdiscoptioncode \
+prefernobreakdiscoptioncode noitaliccorrectiondiscoptioncode nozeroitaliccorrectiondiscoptioncode textcheckitalicdiscoptioncode ignoreprevdepthmvloptioncode \
+noprevdepthmvloptioncode discardtopmvloptioncode discardbottommvloptioncode continueifinputfile continuewhenlmtxmode \
+continuewhenmkivmode uunit defaultdisplaywidowpenalty defaultwidowpenalty defaultclubpenalty \
+defaultbrokenpenalty defaultgriddisplaywidowpenalty defaultgridwidowpenalty defaultgridclubpenalty defaultgridbrokenpenalty \
+luametatexverboseversion luametatexfunctionality 
 
 keywordclass.context.helpers=\
 pushglobalsetups popglobalsetups startsetups stopsetups \
@@ -146,203 +163,211 @@
 globalresetmode globalsetsystemmode globalresetsystemmode booleanmodevalue newcount \
 newdimen newskip newmuskip newbox newtoks \
 newread newwrite newmarks newinsert newattribute \
-newif newfloat newlanguage newfamily newfam \
-newhelp newuserunit newinteger newdimension newgluespec \
-newmugluespec newposit aliasinteger aliasdimension aliasposit \
-then begcsname autorule tobit tobits \
-tohexa strippedcsname checkedstrippedcsname nofarguments firstargumentfalse \
-firstargumenttrue secondargumentfalse secondargumenttrue thirdargumentfalse thirdargumenttrue \
-fourthargumentfalse fourthargumenttrue fifthargumentfalse fifthargumenttrue sixthargumentfalse \
-sixthargumenttrue seventhargumentfalse seventhargumenttrue doglobal dodoglobal \
-redoglobal resetglobal donothing untraceddonothing dontcomplain \
-moreboxtracing lessboxtracing noboxtracing forgetall donetrue \
-donefalse foundtrue foundfalse globaldonetrue globaldonefalse \
-globalfoundtrue globalfoundfalse inlineordisplaymath indisplaymath forcedisplaymath \
-startforceddisplaymath stopforceddisplaymath startpickupmath stoppickupmath reqno \
-forceinlinemath mathortext thebox htdp unvoidbox \
-hfilll vfilll mathbox mathlimop mathnolop \
-mathnothing mathalpha currentcatcodetable defaultcatcodetable catcodetablename \
-newcatcodetable startcatcodetable stopcatcodetable startextendcatcodetable stopextendcatcodetable \
-pushcatcodetable popcatcodetable restorecatcodes setcatcodetable letcatcodecommand \
-defcatcodecommand uedcatcodecommand hglue vglue hfillneg \
-vfillneg hfilllneg vfilllneg hsplit ruledhss \
-ruledhfil ruledhfill ruledhfilll ruledhfilneg ruledhfillneg \
-normalhfillneg normalhfilllneg ruledvss ruledvfil ruledvfill \
-ruledvfilll ruledvfilneg ruledvfillneg normalvfillneg normalvfilllneg \
-ruledhbox ruledvbox ruledvtop ruleddbox ruledvcenter \
-ruledmbox ruledhpack ruledvpack ruledtpack ruleddpack \
-ruledvsplit ruledtsplit ruleddsplit ruledhskip ruledvskip \
-ruledkern ruledmskip ruledmkern ruledhglue ruledvglue \
-normalhglue normalvglue ruledpenalty filledhboxb filledhboxr \
-filledhboxg filledhboxc filledhboxm filledhboxy filledhboxk \
-scratchstring scratchstringone scratchstringtwo tempstring scratchcounter \
-globalscratchcounter privatescratchcounter scratchfloat globalscratchfloat privatescratchfloat \
-scratchdimen globalscratchdimen privatescratchdimen scratchskip globalscratchskip \
-privatescratchskip scratchmuskip globalscratchmuskip privatescratchmuskip scratchtoks \
-globalscratchtoks privatescratchtoks scratchbox globalscratchbox privatescratchbox \
-scratchmacro scratchmacroone scratchmacrotwo scratchconditiontrue scratchconditionfalse \
-ifscratchcondition scratchconditiononetrue scratchconditiononefalse ifscratchconditionone scratchconditiontwotrue \
-scratchconditiontwofalse ifscratchconditiontwo globalscratchcounterone globalscratchcountertwo globalscratchcounterthree \
-groupedcommand groupedcommandcs triggergroupedcommand triggergroupedcommandcs simplegroupedcommand \
-simplegroupedcommandcs pickupgroupedcommand pickupgroupedcommandcs mathgroupedcommandcs usedbaselineskip \
-usedlineskip usedlineskiplimit availablehsize localhsize setlocalhsize \
-distributedhsize hsizefraction next nexttoken nextbox \
-dowithnextbox dowithnextboxcs dowithnextboxcontent dowithnextboxcontentcs flushnextbox \
-boxisempty boxtostring contentostring prerolltostring givenwidth \
-givenheight givendepth scangivendimensions scratchwidth scratchheight \
-scratchdepth scratchoffset scratchdistance scratchtotal scratchitalic \
-scratchhsize scratchvsize scratchclass scratchxoffset scratchyoffset \
-scratchhoffset scratchvoffset scratchxposition scratchyposition scratchtopoffset \
-scratchbottomoffset scratchleftoffset scratchrightoffset scratchcounterone scratchcountertwo \
-scratchcounterthree scratchcounterfour scratchcounterfive scratchcountersix scratchfloatone \
-scratchfloattwo scratchfloatthree scratchfloatfour scratchfloatfive scratchfloatsix \
-scratchdimenone scratchdimentwo scratchdimenthree scratchdimenfour scratchdimenfive \
-scratchdimensix scratchskipone scratchskiptwo scratchskipthree scratchskipfour \
-scratchskipfive scratchskipsix scratchmuskipone scratchmuskiptwo scratchmuskipthree \
-scratchmuskipfour scratchmuskipfive scratchmuskipsix scratchtoksone scratchtokstwo \
-scratchtoksthree scratchtoksfour scratchtoksfive scratchtokssix scratchboxone \
-scratchboxtwo scratchboxthree scratchboxfour scratchboxfive scratchboxsix \
-scratchnx scratchny scratchmx scratchmy scratchunicode \
-scratchunicodeone scratchunicodetwo scratchunicodethree scratchmin scratchmax \
-scratchread scratchwrite pfsin pfcos pftan \
-pfasin pfacos pfatan pfsinh pfcosh \
-pftanh pfasinh pfacosh pfatanh pfsqrt \
-pflog pfexp pfceil pffloor pfround \
-pfabs pfrad pfdeg pfatantwo pfpow \
-pfmod pfrem scratchleftskip scratchrightskip scratchtopskip \
-scratchbottomskip doif doifnot doifelse firstinset \
-doifinset doifnotinset doifelseinset doifinsetelse doifelsenextchar \
-doifnextcharelse doifelsenextcharcs doifnextcharcselse doifelsenextoptional doifnextoptionalelse \
-doifelsenextoptionalcs doifnextoptionalcselse doifelsefastoptionalcheck doiffastoptionalcheckelse doifelsefastoptionalcheckcs \
-doiffastoptionalcheckcselse doifelsenextbgroup doifnextbgroupelse doifelsenextbgroupcs doifnextbgroupcselse \
-doifelsenextparenthesis doifnextparenthesiselse doifelseundefined doifundefinedelse doifelsedefined \
-doifdefinedelse doifundefined doifdefined doifelsevalue doifvalue \
-doifnotvalue doifnothing doifsomething doifelsenothing doifnothingelse \
-doifelsesomething doifsomethingelse doifvaluenothing doifvaluesomething doifelsevaluenothing \
-doifvaluenothingelse doifelsedimension doifdimensionelse doifelsenumber doifnumberelse \
-doifnumber doifnotnumber doifelsecommon doifcommonelse doifcommon \
-doifnotcommon doifinstring doifnotinstring doifelseinstring doifinstringelse \
-doifelseassignment doifassignmentelse docheckassignment doifelseassignmentcs doifassignmentelsecs \
-validassignment novalidassignment doiftext doifelsetext doiftextelse \
-doifnottext validtext quitcondition truecondition falsecondition \
-tracingall tracingnone loggingall tracingcatcodes showluatokens \
-aliasmacro removetoks appendtoks prependtoks appendtotoks \
-prependtotoks to endgraf endpar reseteverypar \
-finishpar empty null space quad \
-enspace emspace charspace nbsp crlf \
-obeyspaces obeylines obeytabs obeypages obeyedspace \
-obeyedline obeyedtab obeyedpage normalspace naturalspace \
-controlspace normalspaces ignoretabs ignorelines ignorepages \
-ignoreeofs setcontrolspaces executeifdefined singleexpandafter doubleexpandafter \
-tripleexpandafter dontleavehmode removelastspace removeunwantedspaces keepunwantedspaces \
-removepunctuation ignoreparskip forcestrutdepth onlynonbreakablespace wait \
-writestatus writeline define defineexpandable redefine \
-setmeasure setemeasure setgmeasure setxmeasure definemeasure \
-freezemeasure measure measured directmeasure setquantity \
-setequantity setgquantity setxquantity definequantity freezequantity \
-quantity quantitied directquantity installcorenamespace getvalue \
-getuvalue setvalue setevalue setgvalue setxvalue \
-letvalue letgvalue resetvalue undefinevalue ignorevalue \
-setuvalue setuevalue setugvalue setuxvalue globallet \
-udef ugdef uedef uxdef checked \
-unique getparameters geteparameters getgparameters getxparameters \
-forgetparameters copyparameters getdummyparameters dummyparameter directdummyparameter \
-setdummyparameter letdummyparameter setexpandeddummyparameter resetdummyparameter usedummystyleandcolor \
-usedummystyleparameter usedummycolorparameter processcommalist processcommacommand quitcommalist \
-quitprevcommalist processaction processallactions processfirstactioninset processallactionsinset \
-unexpanded expanded startexpanded stopexpanded protect \
-unprotect firstofoneargument firstoftwoarguments secondoftwoarguments firstofthreearguments \
-secondofthreearguments thirdofthreearguments firstoffourarguments secondoffourarguments thirdoffourarguments \
-fourthoffourarguments firstoffivearguments secondoffivearguments thirdoffivearguments fourthoffivearguments \
-fifthoffivearguments firstofsixarguments secondofsixarguments thirdofsixarguments fourthofsixarguments \
-fifthofsixarguments sixthofsixarguments firstofoneunexpanded firstoftwounexpanded secondoftwounexpanded \
-firstofthreeunexpanded secondofthreeunexpanded thirdofthreeunexpanded gobbleoneargument gobbletwoarguments \
-gobblethreearguments gobblefourarguments gobblefivearguments gobblesixarguments gobblesevenarguments \
-gobbleeightarguments gobbleninearguments gobbletenarguments gobbleoneoptional gobbletwooptionals \
-gobblethreeoptionals gobblefouroptionals gobblefiveoptionals dorecurse doloop \
-exitloop dostepwiserecurse recurselevel recursedepth dofastloopcs \
-fastloopindex fastloopfinal dowith doloopovermatch doloopovermatched \
-doloopoverlist newconstant setnewconstant setconstant setconstantvalue \
-newconditional settrue setfalse settruevalue setfalsevalue \
-setconditional newmacro setnewmacro newfraction newsignal \
-newboundary dosingleempty dodoubleempty dotripleempty doquadrupleempty \
-doquintupleempty dosixtupleempty doseventupleempty dosingleargument dodoubleargument \
-dotripleargument doquadrupleargument doquintupleargument dosixtupleargument doseventupleargument \
-dosinglegroupempty dodoublegroupempty dotriplegroupempty doquadruplegroupempty doquintuplegroupempty \
-permitspacesbetweengroups dontpermitspacesbetweengroups nopdfcompression maximumpdfcompression normalpdfcompression \
-onlypdfobjectcompression nopdfobjectcompression modulonumber dividenumber getfirstcharacter \
-doifelsefirstchar doiffirstcharelse mathclassvalue startnointerference stopnointerference \
-twodigits threedigits leftorright offinterlineskip oninterlineskip \
-nointerlineskip strut halfstrut quarterstrut depthstrut \
-halflinestrut noheightstrut setstrut strutbox strutht \
-strutdp strutwd struthtdp strutgap begstrut \
-endstrut lineheight leftboundary rightboundary signalcharacter \
-ascender descender capheight aligncontentleft aligncontentmiddle \
-aligncontentright shiftbox vpackbox hpackbox vpackedbox \
-hpackedbox normalreqno startimath stopimath normalstartimath \
-normalstopimath startdmath stopdmath normalstartdmath normalstopdmath \
-uncramped cramped mathstyletrigger triggermathstyle triggeredmathstyle \
-mathstylefont mathsmallstylefont mathstyleface mathsmallstyleface mathstylecommand \
-mathpalette mathstylehbox mathstylevbox mathstylevcenter mathstylevcenteredhbox \
-mathstylevcenteredvbox mathtext setmathsmalltextbox setmathtextbox pushmathstyle \
-popmathstyle triggerdisplaystyle triggertextstyle triggerscriptstyle triggerscriptscriptstyle \
-triggeruncrampedstyle triggercrampedstyle triggersmallstyle triggeruncrampedsmallstyle triggercrampedsmallstyle \
-triggerbigstyle triggeruncrampedbigstyle triggercrampedbigstyle luaexpr expelsedoif \
-expdoif expdoifnot expdoifelsecommon expdoifcommonelse expdoifelseinset \
-expdoifinsetelse glyphscaled ctxdirectlua ctxlatelua ctxsprint \
-ctxwrite ctxcommand ctxdirectcommand ctxlatecommand ctxreport \
-ctxlua luacode lateluacode directluacode registerctxluafile \
-ctxloadluafile luaversion luamajorversion luaminorversion ctxluacode \
-luaconditional luaexpanded ctxluamatch ctxluamatchfile startluaparameterset \
-stopluaparameterset luaparameterset definenamedlua obeylualines obeyluatokens \
-startluacode stopluacode startlua stoplua startctxfunction \
-stopctxfunction ctxfunction startctxfunctiondefinition stopctxfunctiondefinition installctxfunction \
-installprotectedctxfunction installprotectedctxscanner installctxscanner resetctxscanner cldprocessfile \
-cldloadfile cldloadviafile cldcontext cldcommand carryoverpar \
-freezeparagraphproperties defrostparagraphproperties setparagraphfreezing forgetparagraphfreezing updateparagraphproperties \
-updateparagraphpenalties updateparagraphdemerits updateparagraphshapes updateparagraphlines updateparagraphpasses \
-lastlinewidth assumelongusagecs righttolefthbox lefttorighthbox righttoleftvbox \
-lefttorightvbox righttoleftvtop lefttorightvtop rtlhbox ltrhbox \
-rtlvbox ltrvbox rtlvtop ltrvtop autodirhbox \
-autodirvbox autodirvtop leftorrighthbox leftorrightvbox leftorrightvtop \
-lefttoright righttoleft checkedlefttoright checkedrighttoleft synchronizelayoutdirection \
-synchronizedisplaydirection synchronizeinlinedirection dirlre dirrle dirlro \
-dirrlo rtltext ltrtext lesshyphens morehyphens \
-nohyphens dohyphens dohyphencollapsing nohyphencollapsing compounddiscretionary \
-Ucheckedstartdisplaymath Ucheckedstopdisplaymath break nobreak allowbreak \
-goodbreak nospace nospacing dospacing naturalhbox \
-naturalvbox naturalvtop naturalhpack naturalvpack naturaltpack \
-reversehbox reversevbox reversevtop reversehpack reversevpack \
-reversetpack hcontainer vcontainer tcontainer frule \
-compoundhyphenpenalty start stop unsupportedcs openout \
-closeout write openin closein read \
-readline readlinedirect readfromterminal boxlines boxline \
-setboxline copyboxline boxlinewd boxlineht boxlinedp \
-boxlinenw boxlinenh boxlinend boxlinels boxliners \
-boxlinelh boxlinerh boxlinelp boxlinerp boxlinein \
-boxrangewd boxrangeht boxrangedp bitwiseset bitwiseand \
-bitwiseor bitwisexor bitwisenot bitwisenil ifbitwiseand \
-bitwise bitwiseshift bitwiseflip textdir linedir \
-pardir boxdir prelistbox postlistbox prelistcopy \
-postlistcopy setprelistbox setpostlistbox noligaturing nokerning \
-noexpansion noprotrusion noleftkerning noleftligaturing norightkerning \
-norightligaturing noitaliccorrection futureletnexttoken defbackslashbreak letbackslashbreak \
-pushoverloadmode popoverloadmode pushrunstate poprunstate suggestedalias \
-showboxhere discoptioncodestring flagcodestring frozenparcodestring glyphoptioncodestring \
-groupcodestring hyphenationcodestring mathcontrolcodestring mathflattencodestring normalizecodestring \
-parcontextcodestring newlocalcount newlocaldimen newlocalskip newlocalmuskip \
-newlocaltoks newlocalbox newlocalwrite newlocalread setnewlocalcount \
-setnewlocaldimen setnewlocalskip setnewlocalmuskip setnewlocaltoks setnewlocalbox \
-ifexpression localcontrolledrepeating expandedrepeating unexpandedrepeating lastchkinteger \
-ifchkinteger mathordinary mathoperator mathbinary mathrelation \
-mathpunctuation mathfraction mathradical mathmiddle mathaccent \
-mathfenced mathghost mathvariable mathactive mathvcenter \
-mathimaginary mathdifferential mathexponential mathdigit mathdivision \
-mathfactorial mathwrapped mathconstruct mathdimension mathunary \
-mathchemicalbond mathimplication filebasename filenameonly filedirname \
-filesuffix setmathoption resetmathoption Ustack Umathdict \
-Umathclass Ustyle Uchar Usuperscript Usubscript \
-Unosuperscript Unosubscript Uprimescript Usuperprescript Usubprescript \
-Unosuperprescript Unosubprescript ignorefile boxwidth boxheight \
-boxdepth 
+newif newfloat newmvl newlanguage newfamily \
+newfam newhelp newuserunit newinteger newdimension \
+newgluespec newmugluespec newposit aliasinteger aliasdimension \
+aliasposit then begcsname autorule tobit \
+tobits tohexa strippedcsname checkedstrippedcsname nofarguments \
+firstargumentfalse firstargumenttrue secondargumentfalse secondargumenttrue thirdargumentfalse \
+thirdargumenttrue fourthargumentfalse fourthargumenttrue fifthargumentfalse fifthargumenttrue \
+sixthargumentfalse sixthargumenttrue seventhargumentfalse seventhargumenttrue doglobal \
+dodoglobal redoglobal resetglobal donothing untraceddonothing \
+dontcomplain moreboxtracing lessboxtracing noboxtracing forgetall \
+donetrue donefalse foundtrue foundfalse globaldonetrue \
+globaldonefalse globalfoundtrue globalfoundfalse inlineordisplaymath indisplaymath \
+forcedisplaymath startforceddisplaymath stopforceddisplaymath startpickupmath stoppickupmath \
+reqno forceinlinemath mathortext thebox htdp \
+unvoidbox hfilll vfilll mathbox mathlimop \
+mathnolop mathnothing mathalpha currentcatcodetable defaultcatcodetable \
+catcodetablename newcatcodetable startcatcodetable stopcatcodetable startextendcatcodetable \
+stopextendcatcodetable pushcatcodetable popcatcodetable restorecatcodes setcatcodetable \
+letcatcodecommand defcatcodecommand uedcatcodecommand hglue vglue \
+hfillneg vfillneg hfilllneg vfilllneg hsplit \
+ruledhss ruledhfil ruledhfill ruledhfilll ruledhfilneg \
+ruledhfillneg normalhfillneg normalhfilllneg ruledvss ruledvfil \
+ruledvfill ruledvfilll ruledvfilneg ruledvfillneg normalvfillneg \
+normalvfilllneg ruledhbox ruledvbox ruledvtop ruleddbox \
+ruledvcenter ruledmbox ruledhpack ruledvpack ruledtpack \
+ruleddpack ruledvsplit ruledtsplit ruleddsplit ruledhskip \
+ruledvskip ruledkern ruledmskip ruledmkern ruledhglue \
+ruledvglue normalhglue normalvglue ruledpenalty filledhboxb \
+filledhboxr filledhboxg filledhboxc filledhboxm filledhboxy \
+filledhboxk scratchstring scratchstringone scratchstringtwo tempstring \
+scratchcounter globalscratchcounter privatescratchcounter scratchfloat globalscratchfloat \
+privatescratchfloat scratchdimen globalscratchdimen privatescratchdimen scratchskip \
+globalscratchskip privatescratchskip scratchmuskip globalscratchmuskip privatescratchmuskip \
+scratchtoks globalscratchtoks privatescratchtoks scratchbox globalscratchbox \
+privatescratchbox scratchmacro scratchmacroone scratchmacrotwo scratchconditiontrue \
+scratchconditionfalse ifscratchcondition scratchconditiononetrue scratchconditiononefalse ifscratchconditionone \
+scratchconditiontwotrue scratchconditiontwofalse ifscratchconditiontwo globalscratchcounterone globalscratchcountertwo \
+globalscratchcounterthree groupedcommand groupedcommandcs triggergroupedcommand triggergroupedcommandcs \
+simplegroupedcommand simplegroupedcommandcs pickupgroupedcommand pickupgroupedcommandcs mathgroupedcommandcs \
+usedbaselineskip usedlineskip usedlineskiplimit availablehsize localhsize \
+setlocalhsize distributedhsize hsizefraction next nexttoken \
+nextbox dowithnextbox dowithnextboxcs dowithnextboxcontent dowithnextboxcontentcs \
+flushnextbox boxisempty boxtostring contentostring prerolltostring \
+givenwidth givenheight givendepth scangivendimensions scratchwidth \
+scratchheight scratchdepth scratchoffset scratchdistance scratchtotal \
+scratchitalic scratchhsize scratchvsize scratchclass scratchxoffset \
+scratchyoffset scratchhoffset scratchvoffset scratchxposition scratchyposition \
+scratchtopoffset scratchbottomoffset scratchleftoffset scratchrightoffset scratchcounterone \
+scratchcountertwo scratchcounterthree scratchcounterfour scratchcounterfive scratchcountersix \
+scratchfloatone scratchfloattwo scratchfloatthree scratchfloatfour scratchfloatfive \
+scratchfloatsix scratchdimenone scratchdimentwo scratchdimenthree scratchdimenfour \
+scratchdimenfive scratchdimensix scratchskipone scratchskiptwo scratchskipthree \
+scratchskipfour scratchskipfive scratchskipsix scratchmuskipone scratchmuskiptwo \
+scratchmuskipthree scratchmuskipfour scratchmuskipfive scratchmuskipsix scratchtoksone \
+scratchtokstwo scratchtoksthree scratchtoksfour scratchtoksfive scratchtokssix \
+scratchboxone scratchboxtwo scratchboxthree scratchboxfour scratchboxfive \
+scratchboxsix scratchnx scratchny scratchmx scratchmy \
+scratchsx scratchsy scratchunicode scratchunicodeone scratchunicodetwo \
+scratchunicodethree scratchmin scratchmax scratchread scratchwrite \
+pfsin pfcos pftan pfasin pfacos \
+pfatan pfsinh pfcosh pftanh pfasinh \
+pfacosh pfatanh pfsqrt pflog pfexp \
+pfceil pffloor pfround pfabs pfrad \
+pfdeg pfatantwo pfpow pfmod pfrem \
+scratchleftskip scratchrightskip scratchtopskip scratchbottomskip doif \
+doifnot doifelse firstinset doifinset doifnotinset \
+doifelseinset doifinsetelse doifelsenextchar doifnextcharelse doifelsenextcharcs \
+doifnextcharcselse doifelsenextoptional doifnextoptionalelse doifelsenextoptionalcs doifnextoptionalcselse \
+doifelsefastoptionalcheck doiffastoptionalcheckelse doifelsefastoptionalcheckcs doiffastoptionalcheckcselse doifelsenextbgroup \
+doifnextbgroupelse doifelsenextbgroupcs doifnextbgroupcselse doifelsenextparenthesis doifnextparenthesiselse \
+doifelseundefined doifundefinedelse doifelsedefined doifdefinedelse doifundefined \
+doifdefined doifelsevalue doifvalue doifnotvalue doifnothing \
+doifsomething doifelsenothing doifnothingelse doifelsesomething doifsomethingelse \
+doifvaluenothing doifvaluesomething doifelsevaluenothing doifvaluenothingelse doifelsedimension \
+doifdimensionelse doifelsenumber doifnumberelse doifnumber doifnotnumber \
+doifelsecommon doifcommonelse doifcommon doifnotcommon doifinstring \
+doifnotinstring doifelseinstring doifinstringelse doifelseassignment doifassignmentelse \
+docheckassignment doifelseassignmentcs doifassignmentelsecs validassignment novalidassignment \
+doiftext doifelsetext doiftextelse doifnottext validtext \
+quitcondition truecondition falsecondition tracingall tracingnone \
+loggingall tracingcatcodes showluatokens aliasmacro removetoks \
+appendtoks prependtoks appendtotoks prependtotoks to \
+endgraf endpar reseteverypar finishpar null \
+space quad enspace emspace charspace \
+nbsp crlf obeyspaces obeylines obeytabs \
+obeypages obeyedspace obeyedline obeyedtab obeyedpage \
+normalspace naturalspace controlspace normalspaces ignoretabs \
+ignorelines ignorepages ignoreeofs setcontrolspaces executeifdefined \
+singleexpandafter doubleexpandafter tripleexpandafter dontleavehmode removelastspace \
+removeunwantedspaces keepunwantedspaces removepunctuation ignoreparskip forcestrutdepth \
+onlynonbreakablespace wait writestatus writeline define \
+defineexpandable redefine setmeasure setemeasure setgmeasure \
+setxmeasure definemeasure freezemeasure measure measured \
+directmeasure setquantity setequantity setgquantity setxquantity \
+definequantity freezequantity quantity quantitied directquantity \
+installcorenamespace getvalue getuvalue setvalue setevalue \
+setgvalue setxvalue letvalue letgvalue resetvalue \
+undefinevalue ignorevalue setuvalue setuevalue setugvalue \
+setuxvalue globallet udef ugdef uedef \
+uxdef checked unique getparameters geteparameters \
+getgparameters getxparameters forgetparameters copyparameters getdummyparameters \
+dummyparameter directdummyparameter setdummyparameter letdummyparameter setexpandeddummyparameter \
+resetdummyparameter usedummystyleandcolor usedummystyleparameter usedummycolorparameter processcommalist \
+processcommacommand quitcommalist quitprevcommalist processaction processallactions \
+processfirstactioninset processallactionsinset unexpanded expanded startexpanded \
+stopexpanded protect unprotect firstofoneargument firstoftwoarguments \
+secondoftwoarguments firstofthreearguments secondofthreearguments thirdofthreearguments firstoffourarguments \
+secondoffourarguments thirdoffourarguments fourthoffourarguments firstoffivearguments secondoffivearguments \
+thirdoffivearguments fourthoffivearguments fifthoffivearguments firstofsixarguments secondofsixarguments \
+thirdofsixarguments fourthofsixarguments fifthofsixarguments sixthofsixarguments firstofoneunexpanded \
+firstoftwounexpanded secondoftwounexpanded firstofthreeunexpanded secondofthreeunexpanded thirdofthreeunexpanded \
+gobbleoneargument gobbletwoarguments gobblethreearguments gobblefourarguments gobblefivearguments \
+gobblesixarguments gobblesevenarguments gobbleeightarguments gobbleninearguments gobbletenarguments \
+gobbleoneoptional gobbletwooptionals gobblethreeoptionals gobblefouroptionals gobblefiveoptionals \
+dorecurse doloop exitloop dostepwiserecurse recurselevel \
+recursedepth dofastloopcs fastloopindex fastloopfinal dowith \
+doloopovermatch doloopovermatched doloopoverlist newconstant setnewconstant \
+setconstant setconstantvalue newconditional settrue setfalse \
+settruevalue setfalsevalue setconditional newmacro setnewmacro \
+newfraction newsignal newboundary dosingleempty dodoubleempty \
+dotripleempty doquadrupleempty doquintupleempty dosixtupleempty doseventupleempty \
+dosingleargument dodoubleargument dotripleargument doquadrupleargument doquintupleargument \
+dosixtupleargument doseventupleargument dosinglegroupempty dodoublegroupempty dotriplegroupempty \
+doquadruplegroupempty doquintuplegroupempty permitspacesbetweengroups dontpermitspacesbetweengroups nopdfcompression \
+maximumpdfcompression normalpdfcompression onlypdfobjectcompression nopdfobjectcompression modulonumber \
+dividenumber getfirstcharacter doifelsefirstchar doiffirstcharelse mathclassvalue \
+startnointerference stopnointerference twodigits threedigits jobposx \
+jobposy jobposw jobposh jobposd leftorright \
+offinterlineskip oninterlineskip nointerlineskip strut halfstrut \
+quarterstrut depthstrut halflinestrut noheightstrut setstrut \
+strutbox strutht strutdp strutwd struthtdp \
+strutgap begstrut endstrut lineheight leftboundary \
+rightboundary signalcharacter ascender descender capheight \
+aligncontentleft aligncontentmiddle aligncontentright shiftbox vpackbox \
+hpackbox vpackedbox hpackedbox normalreqno startimath \
+stopimath normalstartimath normalstopimath startdmath stopdmath \
+normalstartdmath normalstopdmath uncramped cramped mathstyletrigger \
+triggermathstyle triggeredmathstyle mathstylefont mathsmallstylefont mathstyleface \
+mathsmallstyleface mathstylecommand mathpalette mathstylehbox mathstylevbox \
+mathstylevcenter mathstylevcenteredhbox mathstylevcenteredvbox mathtext setmathsmalltextbox \
+setmathtextbox pushmathstyle popmathstyle triggerdisplaystyle triggertextstyle \
+triggerscriptstyle triggerscriptscriptstyle triggeruncrampedstyle triggercrampedstyle triggersmallstyle \
+triggeruncrampedsmallstyle triggercrampedsmallstyle triggerbigstyle triggeruncrampedbigstyle triggercrampedbigstyle \
+luaexpr expelsedoif expdoif expdoifnot expdoifelsecommon \
+expdoifcommonelse expdoifelseinset expdoifinsetelse glyphscaled ctxdirectlua \
+ctxlatelua ctxsprint ctxwrite ctxcommand ctxdirectcommand \
+ctxlatecommand ctxreport ctxlua luacode lateluacode \
+directluacode registerctxluafile ctxloadluafile luaversion luamajorversion \
+luaminorversion ctxluacode luaconditional luaexpanded ctxluamatch \
+ctxluamatchfile startluaparameterset stopluaparameterset luaparameterset definenamedlua \
+obeylualines obeyluatokens startluacode stopluacode startlua \
+stoplua startctxfunction stopctxfunction ctxfunction startctxfunctiondefinition \
+stopctxfunctiondefinition installctxfunction installprotectedctxfunction installprotectedctxscanner installctxscanner \
+resetctxscanner cldprocessfile cldloadfile cldloadviafile cldcontext \
+cldcommand carryoverpar freezeparagraphproperties defrostparagraphproperties setparagraphfreezing \
+forgetparagraphfreezing updateparagraphproperties updateparagraphpenalties updateparagraphdemerits updateparagraphshapes \
+updateparagraphlines updateparagraphpasses lastlinewidth assumelongusagecs righttolefthbox \
+lefttorighthbox righttoleftvbox lefttorightvbox righttoleftvtop lefttorightvtop \
+rtlhbox ltrhbox rtlvbox ltrvbox rtlvtop \
+ltrvtop autodirhbox autodirvbox autodirvtop leftorrighthbox \
+leftorrightvbox leftorrightvtop lefttoright righttoleft checkedlefttoright \
+checkedrighttoleft synchronizelayoutdirection synchronizedisplaydirection synchronizeinlinedirection dirlre \
+dirrle dirlro dirrlo rtltext ltrtext \
+lesshyphens morehyphens nohyphens dohyphens dohyphencollapsing \
+nohyphencollapsing compounddiscretionary doapostrophes noapostrophes Ucheckedstartdisplaymath \
+Ucheckedstopdisplaymath break nobreak allowbreak goodbreak \
+nospace nospacing dospacing naturalhbox naturalvbox \
+naturalvtop naturalhpack naturalvpack naturaltpack reversehbox \
+reversevbox reversevtop reversehpack reversevpack reversetpack \
+hcontainer vcontainer tcontainer frule compoundhyphenpenalty \
+start stop unsupportedcs openout closeout \
+write openin closein read readline \
+readlinedirect readfromterminal boxlines boxline setboxline \
+copyboxline boxlinewd boxlineht boxlinedp boxlinenw \
+boxlinenh boxlinend boxlinels boxliners boxlinelh \
+boxlinerh boxlinelp boxlinerp boxlinein boxrangewd \
+boxrangeht boxrangedp boxlinemaxwd boxlinemaxht boxlinemaxdp \
+bitwiseset bitwiseand bitwiseor bitwisexor bitwisenot \
+bitwisenil ifbitwiseand bitwise bitwiseshift bitwiseflip \
+textdir linedir pardir boxdir prelistbox \
+postlistbox prelistcopy postlistcopy setprelistbox setpostlistbox \
+noligaturing nokerning noexpansion noprotrusion noleftkerning \
+noleftligaturing norightkerning norightligaturing noitaliccorrection overloadspacefactor \
+futureletnexttoken defbackslashbreak letbackslashbreak pushoverloadmode popoverloadmode \
+pushrunstate poprunstate suggestedalias showboxhere discoptioncodestring \
+flagcodestring frozenparcodestring glyphoptioncodestring groupcodestring hyphenationcodestring \
+mathcontrolcodestring mathflattencodestring normalizecodestring parcontextcodestring newlocalcount \
+newlocaldimen newlocalskip newlocalmuskip newlocaltoks newlocalbox \
+newlocalwrite newlocalread setnewlocalcount setnewlocaldimen setnewlocalskip \
+setnewlocalmuskip setnewlocaltoks setnewlocalbox ifexpression localcontrolledrepeating \
+expandedrepeating unexpandedrepeating lastchkinteger ifchkinteger mathordinary \
+mathoperator mathbinary mathrelation mathpunctuation mathfraction \
+mathradical mathmiddle mathaccent mathfenced mathghost \
+mathvariable mathactive mathvcenter mathimaginary mathdifferential \
+mathexponential mathdigit mathdivision mathfactorial mathwrapped \
+mathconstruct mathdimension mathunary mathchemicalbond mathimplication \
+filebasename filenameonly filedirname filesuffix setmathoption \
+resetmathoption Ustack Umathdict Umathclass Ustyle \
+Uchar Usuperscript Usubscript Unosuperscript Unosubscript \
+Uprimescript Usuperprescript Usubprescript Unosuperprescript Unosubprescript \
+ignorefile boxwidth boxheight boxdepth shiftparshape \
+rotateparshape granularfitnessclasses granularadjacentdemerits matchallfitnessclasses defaultmathforwardpenalties \
+defaultmathbackwardpenalties optimalmathforwardpenalties optimalmathbackwardpenalties lesswidowpenalties lessclubpenalties \
+lessbrokenpenalties strictwidowpenalties strictwidowpenaltiestwo strictwidowpenaltiesthree strictwidowpenaltiesfour \
+strictclubpenalties strictclubpenaltiestwo strictclubpenaltiesthree strictclubpenaltiesfour strictbrokenpenalties \
+lessorphanpenalties lessorphanpenaltiestwo lessorphanpenaltiesthree lessorphanpenaltiesfour nohpenalties \
+novpenalties toddlerpenalty orphanpenalty 
 

Modified: trunk/Master/texmf-dist/context/data/scite/context/scite-context-data-interfaces.properties
===================================================================
--- trunk/Master/texmf-dist/context/data/scite/context/scite-context-data-interfaces.properties	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/context/data/scite/context/scite-context-data-interfaces.properties	2025-02-19 22:48:50 UTC (rev 74156)
@@ -6,11 +6,11 @@
 Adiaeresismacron Adotaccent Adotaccentmacron Adotbelow Adoublegrave \
 AfterPar Agrave Ahook Ainvertedbreve Alpha \
 Alphabeticnumerals AmSTeX Amacron And Angstrom \
-Aogonek Aring Aringacute Arrowvert Astroke \
-Atilde BeforePar Beta Bhook Big \
-Bigg Biggl Biggm Biggr Bigl \
-Bigm Bigr Box Bumpeq CONTEXT \
-Cacute Cap Caps Ccaron Ccedilla \
+Aogonek Aring Aringacute Astroke Atilde \
+BeforePar Beta Bhook Big Bigg \
+Biggl Biggm Biggr Bigl Bigm \
+Bigr Box Bumpeq CONTEXT Cacute \
+Camel Cap Caps Ccaron Ccedilla \
 Ccircumflex Cdotaccent Character Characters Chi \
 Chook ConTeXt Context ConvertConstantAfter ConvertToConstant \
 Cstroke Cup DAYLONG DAYSHORT DZcaronligature \
@@ -21,36 +21,37 @@
 Ecircumflexhook Ecircumflextilde Ediaeresis Edotaccent Edotbelow \
 Edoublegrave Egrave Ehook Einvertedbreve Emacron \
 Eogonek Epsilon Eta Eth Etilde \
-Eulerconst EveryLine EveryPar Fhook Finv \
-Gacute Game Gamma Gbreve Gcaron \
-Gcircumflex Gcommaaccent Gdotaccent GetPar Ghook \
-GotoPar Greeknumerals Gstroke Hcaron Hcircumflex \
-Hstroke IJligature INRSTEX Iacute Ibreve \
-Icaron Icircumflex Idiaeresis Idotaccent Idotbelow \
-Idoublegrave Igrave Ihook Iinvertedbreve Im \
-Imacron Iogonek Iota Istroke Itilde \
-Jcircumflex Join Kappa Kcaron Kcommaaccent \
-Khook LAMSTEX LATEX LJligature LUAJITTEX \
-LUAMETATEX LUATEX LaTeX Lacute LamSTeX \
-Lambda Lbar Lcaron Lcommaaccent Ldotmiddle \
-Ldsh Leftarrow Leftrightarrow Ljligature Lleftarrow \
-Longleftarrow Longleftrightarrow Longmapsfrom Longmapsto Longrightarrow \
-Lsh Lstroke Lua LuaMetaTeX LuaTeX \
-LuajitTeX METAFONT METAFUN METAPOST MKII \
-MKIV MKIX MKLX MKVI MKXI \
-MKXL MONTH MONTHLONG MONTHSHORT MPII \
-MPIV MPLX MPVI MPXL MPanchor \
-MPbetex MPc MPcode MPcolor MPcoloronly \
-MPcolumn MPd MPdrawing MPfontsizehskip MPgetmultipars \
-MPgetmultishape MPgetposboxes MPh MPinclusions MPleftskip \
-MPll MPlr MPls MPmenubuttons MPn \
-MPoptions MPoverlayanchor MPp MPpage MPpardata \
-MPplus MPpos MPpositiongraphic MPposset MPr \
-MPrawvar MPregion MPrest MPrightskip MPrs \
-MPstring MPtext MPtransparency MPul MPur \
-MPv MPvar MPvariable MPvv MPw \
-MPwhd MPx MPxy MPxywhd MPy \
-Mapsfrom Mapsto MetaFont MetaFun MetaPost \
+Eulerconst EveryLine EveryPar F Fhook \
+Finv Gacute Game Gamma Gbreve \
+Gcaron Gcircumflex Gcommaaccent Gdotaccent GetPar \
+Ghook GotoPar Greeknumerals Gstroke Hcaron \
+Hcircumflex Hstroke IJligature INRSTEX Iacute \
+Ibreve Icaron Icircumflex Idiaeresis Idotaccent \
+Idotbelow Idoublegrave Igrave Ihook Iinvertedbreve \
+Im Imacron Iogonek Iota Istroke \
+Itilde Jcircumflex Join Kappa Kcaron \
+Kcommaaccent Khook LAMSTEX LATEX LJligature \
+LUAJITTEX LUAMETATEX LUATEX LaTeX Lacute \
+LamSTeX Lambda Lbar Lcaron Lcommaaccent \
+Ldotmiddle Ldsh Leftarrow Leftarrowtext Leftrightarrow \
+Leftrightarrowtext Ljligature Lleftarrow Longleftarrow Longleftrightarrow \
+Longmapsfrom Longmapsto Longrightarrow Lsh Lstroke \
+Lua LuaMetaTeX LuaTeX LuajitTeX METAFONT \
+METAFUN METAPOST MKII MKIV MKIX \
+MKLX MKVI MKXI MKXL MONTH \
+MONTHLONG MONTHSHORT MPII MPIV MPLX \
+MPVI MPXL MPanchor MPbetex MPc \
+MPcode MPcolor MPcoloronly MPcolumn MPd \
+MPdrawing MPfontsizehskip MPgetmultipars MPgetmultishape MPgetposboxes \
+MPh MPinclusions MPleftskip MPll MPlr \
+MPls MPmenubuttons MPn MPoptions MPoverlayanchor \
+MPp MPpage MPpardata MPplus MPpos \
+MPpositiongraphic MPposset MPr MPrawvar MPregion \
+MPrest MPrightskip MPrs MPstring MPtext \
+MPtransparency MPul MPur MPv MPvar \
+MPvariable MPvv MPw MPwhd MPx \
+MPxy MPxywhd MPy Mapsfrom Mapsto \
+MetaFont MetaFontLogo MetaFun MetaPost MetaPostLogo \
 Mu NJligature Nacute Ncaron Ncommaaccent \
 Nearrow Neng Ngrave Njligature NormalizeFontHeight \
 NormalizeFontWidth NormalizeTextHeight NormalizeTextWidth Ntilde Nu \
@@ -63,205 +64,222 @@
 Omicron Oogonek Oogonekmacron Ostroke Ostrokeacute \
 Otilde Otildemacron P PDFETEX PDFTEX \
 PDFcolor PICTEX PPCHTEX PPCHTeX PRAGMA \
-Phi Phook Pi PiCTeX Plankconst \
-PointsToBigPoints PointsToReal PointsToWholeBigPoints Psi PtToCm \
-Racute Rcaron Rcommaaccent Rdoublegrave Rdsh \
-Re ReadFile Relbar Rho Rightarrow \
-Rinvertedbreve Romannumerals Rrightarrow Rsh S \
-Sacute ScaledPointsToBigPoints ScaledPointsToWholeBigPoints Scaron Scedilla \
-Schwa Scircumflex Scommaaccent Searrow Sigma \
-Smallcapped Subset Supset Swarrow TABLE \
-TEX TaBlE Tau Tcaron Tcedilla \
-Tcommaaccent TeX TheNormalizedFontSize Theta Thook \
-Thorn TransparencyHack Tstroke Uacute Ubreve \
-Ucaron Ucircumflex Udiaeresis Udiaeresisacute Udiaeresiscaron \
-Udiaeresisgrave Udiaeresismacron Udotbelow Udoublegrave Ugrave \
-Uhook Uhorn Uhornacute Uhorndotbelow Uhorngrave \
-Uhornhook Uhorntilde Uhungarumlaut Uinvertedbreve Umacron \
-Uogonek Uparrow Updownarrow Upsilon Uring \
-Utilde Uuparrow VDash Vdash VerboseNumber \
-Vert Vhook Vvdash WEEKDAY WORD \
-WORDS Wcircumflex WidthSpanningText Word Words \
-XETEX XeTeX Xi Yacute Ycircumflex \
-Ydiaeresis Ydotbelow Ygrave Yhook Ymacron \
-Ytilde Zacute Zcaron Zdotaccent Zeta \
-Zhook Zstroke aacute abbreviation abjadnaivenumerals \
-abjadnodotnumerals abjadnumerals about abreve abreveacute \
-abrevedotbelow abrevegrave abrevehook abrevetilde acaron \
-acircumflex acircumflexacute acircumflexdotbelow acircumflexgrave acircumflexhook \
-acircumflextilde activatespacehandler actualday actualmonth actualyear \
+Periodic Phi Phook Pi PiCTeX \
+Planckconst PointsToBigPoints PointsToReal PointsToWholeBigPoints Pr \
+Psi PtToCm Racute Rcaron Rcommaaccent \
+Rdoublegrave Rdsh Re ReadFile Relbar \
+Rho Rightarrow Rightarrowtext Rightleftarrowtext Rinvertedbreve \
+Romannumerals Rrightarrow Rsh S Sacute \
+ScaledPointsToBigPoints ScaledPointsToWholeBigPoints Scaron Scedilla Schwa \
+Scircumflex Scommaaccent Searrow Sigma Smallcapped \
+Subset Supset Swarrow TABLE TEX \
+TaBlE Tau Tcaron Tcedilla Tcommaaccent \
+TeX TheNormalizedFontSize Theta Thook Thorn \
+TransparencyHack Tstroke Uacute Ubreve Ucaron \
+Ucircumflex Udiaeresis Udiaeresisacute Udiaeresiscaron Udiaeresisgrave \
+Udiaeresismacron Udotbelow Udoublegrave Ugrave Uhook \
+Uhorn Uhornacute Uhorndotbelow Uhorngrave Uhornhook \
+Uhorntilde Uhungarumlaut Uinvertedbreve Umacron Uogonek \
+Uparrow Updownarrow Upsilon Uring Utilde \
+Uuparrow VDash Vdash VerboseNumber Vert \
+Vhook Vvdash WEEKDAY WORD WORDS \
+Wcircumflex WidthSpanningText Word Words XETEX \
+XeTeX Xi Yacute Ycircumflex Ydiaeresis \
+Ydotbelow Ygrave Yhook Ymacron Ytilde \
+Zacute Zcaron Zdotaccent Zeta Zhook \
+Zstroke aacute abbreviation abjadnaivenumerals abjadnodotnumerals \
+abjadnumerals about abreve abreveacute abrevedotbelow \
+abrevegrave abrevehook abrevetilde acaron acircumflex \
+acircumflexacute acircumflexdotbelow acircumflexgrave acircumflexhook acircumflextilde \
+acos activatespacehandler actualday actualmonth actualyear \
 actuarial acute acwopencirclearrow adaptcollector adaptfontfeature \
-adaptlayout adaptpapersize addfeature addtoJSpreamble addtocommalist \
-addvalue adiaeresis adiaeresismacron adjointsymbol adotaccent \
-adotaccentmacron adotbelow adoublegrave aeacute aeligature \
-aemacron afghanicurrency aftersplitstring aftertestandsplitstring agrave \
-ahook ainvertedbreve aleph alignbottom aligned \
+adaptive adaptivebox adaptivehbox adaptivevbox adaptlayout \
+adaptpapersize addfeature addriverstobox addtoJSpreamble addtocommalist \
+addvalue adiaeresis adiaeresismacron adj adjoint \
+adjointsymbol adotaccent adotaccentmacron adotbelow adoublegrave \
+aeacute aeligature aemacron afghanicurrency aftersplitstring \
+aftertestandsplitstring agrave ahook ainvertedbreve aleph \
+alignbottom aligncontentleft aligncontentmiddle aligncontentright aligned \
 alignedbox alignedline alignhere alignmentcharacter allinputpaths \
-alpha alphabeticnumerals alwayscitation alwayscite amacron \
-amalg ampersand anchor angle aogonek \
-appendetoks appendgvalue appendtocommalist appendtoks appendtoksonce \
-appendvalue apply applyalternativestyle applyfunction applyfunctionof \
-applyprocessor applytocharacters applytofirstcharacter applytosplitstringchar applytosplitstringcharspaced \
-applytosplitstringline applytosplitstringlinespaced applytosplitstringword applytosplitstringwordspaced applytowords \
-approx approxEq approxeq approxnEq arabicakbar \
-arabicalayhe arabicallah arabicallallahou arabicasterisk arabicbasmalah \
-arabiccomma arabiccuberoot arabicdateseparator arabicdecimals arabicdisputedendofayah \
-arabicendofayah arabicexnumerals arabicfootnotemarker arabicfourthroot arabichighain \
-arabichighalayheassallam arabichigheqala arabichighesala arabichighfootnotemarker arabichighjeem \
-arabichighlamalef arabichighmadda arabichighmeemlong arabichighmeemshort arabichighnisf \
-arabichighnoon arabichighnoonkasra arabichighqaf arabichighqif arabichighradiallahouanhu \
-arabichighrahmatullahalayhe arabichighrubc arabichighsad arabichighsajda arabichighsakta \
-arabichighsallallahou arabichighseen arabichighsmallsafha arabichightah arabichightakhallus \
-arabichighthalatha arabichighwaqf arabichighyeh arabichighzain arabicjallajalalouhou \
-arabiclettermark arabiclowmeemlong arabiclownoonkasra arabiclowseen arabicmisra \
-arabicmuhammad arabicnumber arabicnumberabove arabicnumerals arabicparenleft \
-arabicparenright arabicpercent arabicperiod arabicpermille arabicpertenthousand \
-arabicpoeticverse arabicqala arabicquestion arabicrasoul arabicray \
-arabicrialsign arabicsafha arabicsajdah arabicsalla arabicsamvat \
-arabicsanah arabicsemicolon arabicshighthreedots arabicslcm arabicstartofrubc \
-arabictripledot arabicvowelwaw arabicvowelyeh arabicwasallam arg \
-aring aringacute asciimode asciistr aside \
-assignalfadimension assigndimen assigndimension assignifempty assigntranslation \
-assignvalue assignwidth assumelongusagecs ast astype \
-asymp at atilde atleftmargin atpage \
-atrightmargin attachment autocap autodirhbox autodirvbox \
-autodirvtop autoinsertnextspace autointegral automathematics autoorientation \
-autopagestaterealpage autopagestaterealpageorder autorule autosetups availablehsize \
-averagecharwidth backepsilon background backgroundimage backgroundimagefill \
-backgroundline backsim backslash bar barleftarrow \
-barleftarrowrightarrowbar barovernorthwestarrow barwedge basegrid baselinebottom \
+alpha alphabeticnumerals alternate alwayscitation alwayscite \
+amacron amalg amedian ampersand anchor \
+angle annuity aodownintc aogonek aointc \
+ap appendetoks appendgvalue appendhiddenbackground appendtocommalist \
+appendtoks appendtoksonce appendvalue apply applyalternativestyle \
+applyfunction applyfunctionof applyprocessor applytocharacters applytofirstcharacter \
+applytosplitstringchar applytosplitstringcharspaced applytosplitstringline applytosplitstringlinespaced applytosplitstringword \
+applytosplitstringwordspaced applytowords approx approxEq approxeq \
+approxnEq arabicakbar arabicalayhe arabicallah arabicallallahou \
+arabicasterisk arabicbasmalah arabiccomma arabiccuberoot arabicdateseparator \
+arabicdecimals arabicdisputedendofayah arabicendofayah arabicexnumerals arabicfootnotemarker \
+arabicfourthroot arabichighain arabichighalayheassallam arabichigheqala arabichighesala \
+arabichighfootnotemarker arabichighjeem arabichighlamalef arabichighmadda arabichighmeemlong \
+arabichighmeemshort arabichighnisf arabichighnoon arabichighnoonkasra arabichighqaf \
+arabichighqif arabichighradiallahouanhu arabichighrahmatullahalayhe arabichighrubc arabichighsad \
+arabichighsajda arabichighsakta arabichighsallallahou arabichighseen arabichighsmallsafha \
+arabichightah arabichightakhallus arabichighthalatha arabichighwaqf arabichighyeh \
+arabichighzain arabicjallajalalouhou arabiclettermark arabiclowmeemlong arabiclownoonkasra \
+arabiclowseen arabicmisra arabicmuhammad arabicnumber arabicnumberabove \
+arabicnumerals arabicparenleft arabicparenright arabicpercent arabicperiod \
+arabicpermille arabicpertenthousand arabicpoeticverse arabicqala arabicquestion \
+arabicrasoul arabicray arabicrialsign arabicsafha arabicsajdah \
+arabicsalla arabicsamvat arabicsanah arabicsemicolon arabicshighthreedots \
+arabicslcm arabicstartofrubc arabictripledot arabicvowelwaw arabicvowelyeh \
+arabicwasallam arccos arccosh arcsin arcsinh \
+arctan arctanh arg aring aringacute \
+asciimode asciistr aside asin assignalfadimension \
+assigndimen assigndimension assignifempty assigntranslation assignvalue \
+assignwidth assumelongusagecs ast astmarked astype \
+asymp at atan atilde atleftmargin \
+atpage atrightmargin attachment autocap autodirhbox \
+autodirvbox autodirvtop autoinsertnextspace autointegral automathematics \
+autoorientation autopagestaterealpage autopagestaterealpageorder autorule autosetups \
+availablehsize averagecharwidth backepsilon background backgroundbar \
+backgroundimage backgroundimagefill backgroundline backsim backslash \
+bar barint barleftarrow barleftarrowrightarrowbar barmarked \
+barovernorthwestarrow bartext barwedge basegrid baselinebottom \
 baselineleftbox baselinemiddlebox baselinerightbox bbordermatrix bbox \
 because beforesplitstring beforetestandsplitstring beta beth \
-between bhook big bigbodyfont bigcap \
-bigcirc bigcircle bigcup bigdiamond bigg \
-bigger biggl biggm biggr bigl \
-bigm bigodot bigoplus bigotimes bigr \
-bigskip bigsqcap bigsqcup bigsquare bigstar \
-bigtimes bigtriangledown bigtriangleup bigudot biguplus \
-bigvee bigwedge binom bitmapimage blacklozenge \
-blackrule blackrules blacksquare blacktriangle blacktriangledown \
-blacktriangleleft blacktriangleright blank blap bleed \
-bleedheight bleedwidth blockligatures blockquote blocksynctexfile \
-blockuservariable bodyfontenvironmentlist bodyfontsize bold boldface \
+between bhook big bigbodyfont bigbottom \
+bigcap bigcirc bigcircle bigcup bigdiamond \
+bigdoublevee bigdoublewedge bigg bigger biggl \
+biggm biggr bigl bigm bigodot \
+bigoplus bigotimes bigr bigreversesolidus bigskip \
+bigsolidus bigsqcap bigsqcup bigsquare bigstar \
+bigtimes bigtop bigtriangledown bigtriangleup bigudot \
+biguplus bigvee bigwedge binom bitmapimage \
+blackboardsum blacklozenge blackrule blackrules blacksquare \
+blacktriangle blacktriangledown blacktriangleleft blacktriangleright blank \
+blankafter blankbefore blap bleed bleedheight \
+bleedwidth blockligatures blockquote blocksynctexfile blockuservariable \
+bmatrix bodyfontenvironmentlist bodyfontsize bold boldface \
 bolditalic boldslanted bookmark booleanmodevalue bordermatrix \
 bot bottombox bottomleftbox bottomrightbox bowtie \
-boxcursor boxdot boxmarker boxminus boxofsize \
-boxplus boxreference boxtimes bpos breakablethinspace \
-breakhere breve bstroke btxabbreviatedjournal btxaddjournal \
+boxcursor boxdot boxfixstretch boxmarker boxminus \
+boxofsize boxplus boxreference boxtimes bpos \
+brace bracematrix bracket breakablethinspace breakhere \
+breve brevemarked bstroke btxabbreviatedjournal btxaddjournal \
 btxalwayscitation btxauthorfield btxdetail btxdirect btxdoif \
-btxdoifcombiinlistelse btxdoifelse btxdoifelsecombiinlist btxdoifelsesameasprevious btxdoifelsesameaspreviouschecked \
-btxdoifelseuservariable btxdoifnot btxdoifsameaspreviouscheckedelse btxdoifsameaspreviouselse btxdoifuservariableelse \
-btxexpandedjournal btxfield btxfieldname btxfieldtype btxfirstofrange \
-btxflush btxflushauthor btxflushauthorinverted btxflushauthorinvertedshort btxflushauthorname \
-btxflushauthornormal btxflushauthornormalshort btxflushsuffix btxfoundname btxfoundtype \
-btxhiddencitation btxhybridcite btxlabellanguage btxlabeltext btxlistcitation \
-btxloadjournalist btxoneorrange btxremapauthor btxsavejournalist btxsetup \
-btxsingularorplural btxsingularplural btxtextcitation buildmathaccent buildtextaccent \
-buildtextbottomcomma buildtextbottomdot buildtextcedilla buildtextgrave buildtextmacron \
-buildtextognek bullet button cacute calligraphic \
-camel cap capital carriagereturn catcodetablename \
-cbox ccaron ccedilla ccircumflex ccurl \
-cdot cdotaccent cdotp cdots centeraligned \
-centerbox centerdot centeredbox centeredlastline centerednextbox \
-centerline cfrac chapter character characters \
-chardescription charwidthlanguage check checkcharacteralign checkedblank \
-checkedchar checkedfiller checkedstrippedcsname checkinjector checkmark \
-checknextindentation checknextinjector checkpage checkparameters checkpreviousinjector \
-checksoundtrack checktwopassdata checkvariables chem chemical \
-chemicalbottext chemicalmidtext chemicalsymbol chemicaltext chemicaltoptext \
-chi chineseallnumerals chinesecapnumerals chinesenumerals chook \
-circ circeq circlearrowleft circlearrowright circledR \
-circledS circledast circledcirc circleddash circledequals \
-circleonrightarrow citation cite clap classfont \
-cldcommand cldcontext cldloadfile cldprocessfile cleftarrow \
-clip clippedoverlayimage clonefield clubsuit collect \
-collectedtext collectexpanded colon coloncolonequals colonequals \
-color colorbar colorcomponents colored coloronly \
-colorvalue column columnbreak columnsetspanwidth combinepages \
-commalistelement commalistsentence commalistsize comment comparecolorgroup \
-comparedimension comparedimensioneps comparepalet complement completebtxrendering \
-completecontent completeindex completelist completelistofabbreviations completelistofchemicals \
-completelistoffigures completelistofgraphics completelistofintermezzi completelistoflogos completelistofpublications \
-completelistofsorts completelistofsynonyms completelistoftables completepagenumber completeregister \
-complexes complexorsimple complexorsimpleempty component composedcollector \
-composedlayer compounddiscretionary compresult cong constantdimen \
-constantdimenargument constantemptyargument constantnumber constantnumberargument contentreference \
-continuednumber continueifinputfile convertargument convertcommand convertedcounter \
-converteddimen convertedsubcounter convertmonth convertnumber convertvalue \
-convertvboxtohbox convolve coprod copyboxfromcache copybtxlabeltext \
-copyfield copyheadtext copylabeltext copymathlabeltext copyoperatortext \
-copypages copyparameters copyposition copyprefixtext copyright \
-copysetups copysuffixtext copytaglabeltext copyunittext correctwhitespace \
-countersubs counttoken counttokens cramped crampedclap \
-crampedllap crampedrlap crightarrow crightoverleftarrow crlf \
-crlfplaceholder crossproduct cstroke ctop ctxcommand \
-ctxdirectcommand ctxdirectlua ctxfunction ctxlatecommand ctxlatelua \
-ctxloadluafile ctxlua ctxluabuffer ctxluacode ctxreport \
-ctxsprint cup curlyeqprec curlyeqsucc curlyvee \
-curlywedge currentassignmentlistkey currentassignmentlistvalue currentbtxuservariable currentcommalistitem \
-currentcomponent currentdate currentenvironment currentfeaturetest currentheadnumber \
-currentinterface currentlanguage currentlistentrydestinationattribute currentlistentrylimitedtext currentlistentrynumber \
-currentlistentrypagenumber currentlistentryreferenceattribute currentlistentrytitle currentlistentrytitlerendered currentlistsymbol \
-currentmainlanguage currentmessagetext currentmoduleparameter currentoutputstream currentproduct \
-currentproject currentregime currentregisterpageuserdata currentresponses currenttime \
-currentvalue currentxtablecolumn currentxtablerow curvearrowleft curvearrowright \
-cwopencirclearrow cyrillicA cyrillicAE cyrillicAbreve cyrillicAdiaeresis \
-cyrillicB cyrillicBIGYUS cyrillicBIGYUSiotified cyrillicC cyrillicCH \
-cyrillicCHEDC cyrillicCHEDCabkhasian cyrillicCHEabkhasian cyrillicCHEdiaeresis cyrillicCHEkhakassian \
-cyrillicCHEvertstroke cyrillicD cyrillicDASIAPNEUMATA cyrillicDJE cyrillicDZE \
-cyrillicDZEabkhasian cyrillicDZHE cyrillicE cyrillicELtail cyrillicEMtail \
-cyrillicENDC cyrillicENGHE cyrillicENhook cyrillicENtail cyrillicEREV \
-cyrillicERY cyrillicERtick cyrillicEbreve cyrillicEdiaeresis cyrillicEgrave \
-cyrillicEiotified cyrillicF cyrillicFITA cyrillicG cyrillicGHEmidhook \
-cyrillicGHEstroke cyrillicGHEupturn cyrillicGJE cyrillicH cyrillicHA \
-cyrillicHADC cyrillicHRDSN cyrillicI cyrillicIE cyrillicII \
-cyrillicISHRT cyrillicISHRTtail cyrillicIZHITSA cyrillicIZHITSAdoublegrave cyrillicIdiaeresis \
-cyrillicIgrave cyrillicImacron cyrillicJE cyrillicK cyrillicKADC \
-cyrillicKAbashkir cyrillicKAhook cyrillicKAstroke cyrillicKAvertstroke cyrillicKJE \
-cyrillicKOPPA cyrillicKSI cyrillicL cyrillicLITTLEYUS cyrillicLITTLEYUSiotified \
-cyrillicLJE cyrillicM cyrillicN cyrillicNJE cyrillicO \
-cyrillicOMEGA cyrillicOMEGAround cyrillicOMEGAtitlo cyrillicOT cyrillicObarred \
-cyrillicObarreddiaeresis cyrillicOdiaeresis cyrillicP cyrillicPALATALIZATION cyrillicPALOCHKA \
-cyrillicPEmidhook cyrillicPSI cyrillicPSILIPNEUMATA cyrillicR cyrillicS \
-cyrillicSCHWA cyrillicSCHWAdiaeresis cyrillicSDSC cyrillicSEMISOFT cyrillicSFTSN \
-cyrillicSH cyrillicSHCH cyrillicSHHA cyrillicT cyrillicTEDC \
-cyrillicTETSE cyrillicTITLO cyrillicTSHE cyrillicU cyrillicUK \
-cyrillicUSHRT cyrillicUdiaeresis cyrillicUdoubleacute cyrillicUmacron cyrillicV \
-cyrillicYA cyrillicYAT cyrillicYERUdiaeresis cyrillicYI cyrillicYO \
-cyrillicYU cyrillicYstr cyrillicYstrstroke cyrillicZ cyrillicZDSC \
-cyrillicZEdiaeresis cyrillicZH cyrillicZHEbreve cyrillicZHEdescender cyrillicZHEdiaeresis \
-cyrillica cyrillicabreve cyrillicadiaeresis cyrillicae cyrillicb \
-cyrillicbigyus cyrillicbigyusiotified cyrillicc cyrillicch cyrilliccheabkhasian \
-cyrillicchedc cyrillicchedcabkhasian cyrillicchediaeresis cyrillicchekhakassian cyrillicchevertstroke \
-cyrillicd cyrillicdje cyrillicdze cyrillicdzeabkhasian cyrillicdzhe \
-cyrillice cyrillicebreve cyrillicediaeresis cyrillicegrave cyrilliceiotified \
-cyrilliceltail cyrillicemtail cyrillicendc cyrillicenghe cyrillicenhook \
-cyrillicentail cyrillicerev cyrillicertick cyrillicery cyrillicf \
-cyrillicfita cyrillicg cyrillicghemidhook cyrillicghestroke cyrillicgheupturn \
-cyrillicgje cyrillich cyrillicha cyrillichadc cyrillichrdsn \
-cyrillici cyrillicidiaeresis cyrillicie cyrillicigrave cyrillicii \
-cyrillicimacron cyrillicishrt cyrillicishrttail cyrillicizhitsa cyrillicizhitsadoublegrave \
-cyrillicje cyrillick cyrillickabashkir cyrillickadc cyrillickahook \
-cyrillickastroke cyrillickavertstroke cyrillickje cyrillickoppa cyrillicksi \
-cyrillicl cyrilliclittleyus cyrilliclittleyusiotified cyrilliclje cyrillicm \
-cyrillicn cyrillicnje cyrillico cyrillicobarred cyrillicobarreddiaeresis \
-cyrillicodiaeresis cyrillicomega cyrillicomegaround cyrillicomegatitlo cyrillicot \
-cyrillicp cyrillicpemidhook cyrillicpsi cyrillicr cyrillics \
-cyrillicschwa cyrillicschwadiaeresis cyrillicsdsc cyrillicsemisoft cyrillicsftsn \
-cyrillicsh cyrillicshch cyrillicshha cyrillict cyrillictedc \
-cyrillictetse cyrillictshe cyrillicu cyrillicudiaeresis cyrillicudoubleacute \
-cyrillicuk cyrillicumacron cyrillicushrt cyrillicv cyrillicya \
-cyrillicyat cyrillicyerudiaeresis cyrillicyi cyrillicyo cyrillicystr \
-cyrillicystrstroke cyrillicyu cyrillicz cyrilliczdsc cyrilliczediaeresis \
-cyrilliczh cyrilliczhebreve cyrilliczhedescender cyrilliczhediaeresis d \
-dag dagger daleth dasharrow dashedleftarrow \
-dashedrightarrow dashv datasetvariable date daylong \
-dayoftheweek dayshort dayspermonth dbinom dcaron \
-dcurl ddag ddagger dddot ddot \
-ddots decrement decrementcounter decrementedcounter decrementpagenumber \
-decrementsubpagenumber decrementvalue defaultinterface defaultobjectpage defaultobjectreference \
-defcatcodecommand defconvertedargument defconvertedcommand defconvertedvalue define \
-defineMPinstance defineTABLEsetup defineaccent defineactivecharacter definealternativestyle \
+btxdoifcitedoneelse btxdoifcombiinlistelse btxdoifelse btxdoifelsecitedone btxdoifelsecombiinlist \
+btxdoifelsesameasprevious btxdoifelsesameaspreviouschecked btxdoifelseuservariable btxdoifnot btxdoifsameaspreviouscheckedelse \
+btxdoifsameaspreviouselse btxdoifuservariableelse btxexpandedjournal btxfield btxfieldname \
+btxfieldtype btxfirstofrange btxflush btxflushauthor btxflushauthorinverted \
+btxflushauthorinvertedshort btxflushauthorname btxflushauthornormal btxflushauthornormalshort btxflushsuffix \
+btxfoundname btxfoundtype btxhiddencitation btxhybridcite btxlabellanguage \
+btxlabeltext btxlistcitation btxloadjournalist btxoneorrange btxrawfield \
+btxremapauthor btxsavejournalist btxsetup btxsingularorplural btxsingularplural \
+btxtextcitation buildtextaccent buildtextbottomcomma buildtextbottomdot buildtextcedilla \
+buildtextgrave buildtextmacron buildtextognek bullet button \
+cacute calligraphic camel cap capint \
+capital carriagereturn casing catcodetablename cbox \
+ccaron ccedilla ccircumflex ccurl cdot \
+cdotaccent cdotp cdots ceiling centeraligned \
+centerbox centeredbox centeredlastline centerednextbox centerline \
+cequilibrium cfrac cgives chapter character \
+characters chardescription charwidthlanguage check checkcharacteralign \
+checkdelimiters checkedblank checkedchar checkedfiller checkedstrippedcsname \
+checkinjector checkmark checkmarked checknextindentation checknextinjector \
+checkpage checkparameters checkpreviousinjector checktwopassdata checkvariables \
+chem chemical chemicalbottext chemicalmidtext chemicalsymbol \
+chemicaltext chemicaltoptext chi chineseallnumerals chinesecapnumerals \
+chinesenumerals chook circ circeq circlearrowleft \
+circlearrowright circledR circledS circledast circledcirc \
+circleddash circledequals circleonrightarrow circlepoleinsideintc circlepoleoutsideintc \
+citation cite clap classfont cldcommand \
+cldcontext cldloadfile cldprocessfile cleaningleft cleaningright \
+clearmarking clip clippedoverlayimage clonefield clongequilibrium \
+clonggives clongleaningleft clongleaningright clongmesomeric clongreturns \
+closedinterval closure clubsuit cmesomeric coker \
+collect collectedmath collectedtext collectexpanded colon \
+coloncolonequals colonequals color colorbar colorcomponents \
+colored coloronly colorvalue column columnbreak \
+columnsetspanwidth combinepages commalistelement commalistsentence commalistsize \
+comment comparecolorgroup comparedimension comparedimensioneps comparepalet \
+complement completebtxrendering completecontent completeindex completelist \
+completelistofabbreviations completelistofchemicals completelistoffigures completelistofgraphics completelistofintermezzi \
+completelistoflogos completelistofpublications completelistofsorts completelistofsynonyms completelistoftables \
+completepagenumber completeregister complexes complexorsimple complexorsimpleempty \
+component composedcollector composedlayer compounddiscretionary compresult \
+cong conjugate constantdimen constantdimenargument constantemptyargument \
+constantnumber constantnumberargument contentreference continuednumber continueifinputfile \
+convertargument convertcommand convertedcounter converteddimen convertedsubcounter \
+convertmonth convertnumber convertvalue convertvboxtohbox convolve \
+coprod copyboxfromcache copybtxlabeltext copyfield copyheadtext \
+copylabeltext copymathlabeltext copyoperatortext copypages copyparameters \
+copyposition copyprefixtext copyright copysetups copysuffixtext \
+copytaglabeltext copyunittext correctwhitespace cos cosh \
+cot coth countersubs counttoken counttokens \
+cramped crampedclap crampedllap crampedrlap creturns \
+crlf crlfplaceholder crossproduct csc cstroke \
+ctop ctxcommand ctxdirectcommand ctxdirectlua ctxfunction \
+ctxlatecommand ctxlatelua ctxloadluafile ctxlua ctxluabuffer \
+ctxluacode ctxreport ctxsprint cup cupint \
+curlyeqprec curlyeqsucc curlyvee curlywedge currentassignmentlistkey \
+currentassignmentlistvalue currentbtxuservariable currentcommalistitem currentcomponent currentdate \
+currentenvironment currentfeaturetest currentheadnumber currentinterface currentlanguage \
+currentlistentrydestinationattribute currentlistentrylimitedtext currentlistentrynumber currentlistentrypagenumber currentlistentryreferenceattribute \
+currentlistentrytitle currentlistentrytitlerendered currentlistsymbol currentmainlanguage currentmessagetext \
+currentmoduleparameter currentoutputstream currentproduct currentproject currentregime \
+currentregisterpageuserdata currentresponses currenttime currentvalue currentxtablecolumn \
+currentxtablerow curvearrowleft curvearrowright cwopencirclearrow cyrillicA \
+cyrillicAE cyrillicAbreve cyrillicAdiaeresis cyrillicB cyrillicBIGYUS \
+cyrillicBIGYUSiotified cyrillicC cyrillicCH cyrillicCHEDC cyrillicCHEDCabkhasian \
+cyrillicCHEabkhasian cyrillicCHEdiaeresis cyrillicCHEkhakassian cyrillicCHEvertstroke cyrillicD \
+cyrillicDASIAPNEUMATA cyrillicDJE cyrillicDZE cyrillicDZEabkhasian cyrillicDZHE \
+cyrillicE cyrillicELtail cyrillicEMtail cyrillicENDC cyrillicENGHE \
+cyrillicENhook cyrillicENtail cyrillicEREV cyrillicERY cyrillicERtick \
+cyrillicEbreve cyrillicEdiaeresis cyrillicEgrave cyrillicEiotified cyrillicF \
+cyrillicFITA cyrillicG cyrillicGHEmidhook cyrillicGHEstroke cyrillicGHEupturn \
+cyrillicGJE cyrillicH cyrillicHA cyrillicHADC cyrillicHRDSN \
+cyrillicI cyrillicIE cyrillicII cyrillicISHRT cyrillicISHRTtail \
+cyrillicIZHITSA cyrillicIZHITSAdoublegrave cyrillicIdiaeresis cyrillicIgrave cyrillicImacron \
+cyrillicJE cyrillicK cyrillicKADC cyrillicKAbashkir cyrillicKAhook \
+cyrillicKAstroke cyrillicKAvertstroke cyrillicKJE cyrillicKOPPA cyrillicKSI \
+cyrillicL cyrillicLITTLEYUS cyrillicLITTLEYUSiotified cyrillicLJE cyrillicM \
+cyrillicN cyrillicNJE cyrillicO cyrillicOMEGA cyrillicOMEGAround \
+cyrillicOMEGAtitlo cyrillicOT cyrillicObarred cyrillicObarreddiaeresis cyrillicOdiaeresis \
+cyrillicP cyrillicPALATALIZATION cyrillicPALOCHKA cyrillicPEmidhook cyrillicPSI \
+cyrillicPSILIPNEUMATA cyrillicR cyrillicS cyrillicSCHWA cyrillicSCHWAdiaeresis \
+cyrillicSDSC cyrillicSEMISOFT cyrillicSFTSN cyrillicSH cyrillicSHCH \
+cyrillicSHHA cyrillicT cyrillicTEDC cyrillicTETSE cyrillicTITLO \
+cyrillicTSHE cyrillicU cyrillicUK cyrillicUSHRT cyrillicUdiaeresis \
+cyrillicUdoubleacute cyrillicUmacron cyrillicV cyrillicYA cyrillicYAT \
+cyrillicYERUdiaeresis cyrillicYI cyrillicYO cyrillicYU cyrillicYstr \
+cyrillicYstrstroke cyrillicZ cyrillicZDSC cyrillicZEdiaeresis cyrillicZH \
+cyrillicZHEbreve cyrillicZHEdescender cyrillicZHEdiaeresis cyrillica cyrillicabreve \
+cyrillicadiaeresis cyrillicae cyrillicb cyrillicbigyus cyrillicbigyusiotified \
+cyrillicc cyrillicch cyrilliccheabkhasian cyrillicchedc cyrillicchedcabkhasian \
+cyrillicchediaeresis cyrillicchekhakassian cyrillicchevertstroke cyrillicd cyrillicdje \
+cyrillicdze cyrillicdzeabkhasian cyrillicdzhe cyrillice cyrillicebreve \
+cyrillicediaeresis cyrillicegrave cyrilliceiotified cyrilliceltail cyrillicemtail \
+cyrillicendc cyrillicenghe cyrillicenhook cyrillicentail cyrillicerev \
+cyrillicertick cyrillicery cyrillicf cyrillicfita cyrillicg \
+cyrillicghemidhook cyrillicghestroke cyrillicgheupturn cyrillicgje cyrillich \
+cyrillicha cyrillichadc cyrillichrdsn cyrillici cyrillicidiaeresis \
+cyrillicie cyrillicigrave cyrillicii cyrillicimacron cyrillicishrt \
+cyrillicishrttail cyrillicizhitsa cyrillicizhitsadoublegrave cyrillicje cyrillick \
+cyrillickabashkir cyrillickadc cyrillickahook cyrillickastroke cyrillickavertstroke \
+cyrillickje cyrillickoppa cyrillicksi cyrillicl cyrilliclittleyus \
+cyrilliclittleyusiotified cyrilliclje cyrillicm cyrillicn cyrillicnje \
+cyrillico cyrillicobarred cyrillicobarreddiaeresis cyrillicodiaeresis cyrillicomega \
+cyrillicomegaround cyrillicomegatitlo cyrillicot cyrillicp cyrillicpemidhook \
+cyrillicpsi cyrillicr cyrillics cyrillicschwa cyrillicschwadiaeresis \
+cyrillicsdsc cyrillicsemisoft cyrillicsftsn cyrillicsh cyrillicshch \
+cyrillicshha cyrillict cyrillictedc cyrillictetse cyrillictshe \
+cyrillicu cyrillicudiaeresis cyrillicudoubleacute cyrillicuk cyrillicumacron \
+cyrillicushrt cyrillicv cyrillicya cyrillicyat cyrillicyerudiaeresis \
+cyrillicyi cyrillicyo cyrillicystr cyrillicystrstroke cyrillicyu \
+cyrillicz cyrilliczdsc cyrilliczediaeresis cyrilliczh cyrilliczhebreve \
+cyrilliczhedescender cyrilliczhediaeresis d dag dagger \
+daggermarked daleth dasharrow dashedleftarrow dashedrightarrow \
+dashv datasetvariable date daylong dayoftheweek \
+dayshort dayspermonth dbinom dcaron dcurl \
+ddag ddagger ddaggermarked ddddot dddot \
+dddotmarked ddot ddotmarked ddots decrement \
+decrementcounter decrementedcounter decrementpagenumber decrementsubpagenumber decrementvalue \
+defaultinterface defaultobjectpage defaultobjectreference defcatcodecommand defconvertedargument \
+defconvertedcommand defconvertedvalue define defineMPinstance defineTABLEsetup \
+defineaccent defineactivecharacter defineadaptive definealign definealternativestyle \
 defineanchor defineattachment defineattribute definebackground definebar \
 defineblock definebodyfont definebodyfontenvironment definebodyfontswitch definebreakpoint \
 definebreakpoints definebtx definebtxdataset definebtxregister definebtxrendering \
@@ -285,317 +303,330 @@
 defineinsertion defineinteraction defineinteractionbar defineinteractionmenu defineinterfaceconstant \
 defineinterfaceelement defineinterfacevariable defineinterlinespace defineintermediatecolor defineitemgroup \
 defineitems definelabel definelabelclass definelayer definelayerpreset \
-definelayout definelinefiller definelinenote definelinenumbering definelines \
-definelist definelistalternative definelistextra definelow definelowhigh \
-definelowmidhigh definemakeup definemarginblock definemargindata definemarker \
-definemarking definemathaccent definemathalignment definemathcases definemathcommand \
-definemathdouble definemathdoubleextensible definemathematics definemathextensible definemathfence \
-definemathfraction definemathframed definemathmatrix definemathornament definemathover \
-definemathoverextensible definemathovertextextensible definemathradical definemathstackers definemathstyle \
-definemathtriplet definemathunder definemathunderextensible definemathundertextextensible definemathunstacked \
-definemeasure definemessageconstant definemixedcolumns definemode definemulticolumns \
-definemultitonecolor definenamedcolor definenamespace definenarrower definenote \
-defineorientation defineornament defineoutputroutine defineoutputroutinecommand defineoverlay \
-definepage definepagebreak definepagechecker definepagecolumns definepageinjection \
-definepageinjectionalternative definepageshift definepagestate definepairedbox definepalet \
-definepapersize defineparagraph defineparagraphs defineparallel defineparbuilder \
-defineperiodkerning defineplaceholder defineplacement definepositioning defineprefixset \
-defineprocesscolor defineprocessor defineprofile defineprogram definepushbutton \
-definepushsymbol definereference definereferenceformat defineregister definerenderingwindow \
-defineresetset defineruby definescale definescript definesection \
-definesectionblock definesectionlevels defineselector defineseparatorset defineshift \
-definesidebar definesort definesorting definespotcolor definestartstop \
-definestyle definestyleinstance definesubfield definesubformula definesymbol \
+definelayout definelinefiller definelinenote definelinenumbering definelineprofile \
+definelines definelist definelistalternative definelistextra definelocalboxes \
+definelow definelowhigh definelowmidhigh definemakeup definemarginblock \
+definemargindata definemarker definemarking definemathaccent definemathalignment \
+definemathbottomaccent definemathcases definemathcommand definemathdelimited definemathdelimiter \
+definemathdouble definemathdoubleaccent definemathdoubleextensible definemathematics definemathextensible \
+definemathfence definemathfraction definemathframed definemathfunction definemathmatrix \
+definemathnesting definemathoperator definemathornament definemathover definemathoverextensible \
+definemathovertextextensible definemathradical definemathsimplealign definemathstackers definemathstyle \
+definemathtopaccent definemathtriplet definemathunder definemathunderextensible definemathundertextextensible \
+definemathunstacked definemeasure definemessageconstant definemixedcolumns definemode \
+definemulticolumns definemultitonecolor definenamedcolor definenamespace definenarrower \
+definenote defineoptimize defineorientation defineornament defineoutputroutine \
+defineoutputroutinecommand defineoverlay definepage definepagebreak definepagechecker \
+definepagecolumns definepageinjection definepageinjectionalternative definepageshift definepagestate \
+definepairedbox definepalet definepapersize defineparagraph defineparagraphs \
+defineparallel defineparbuilder defineperiodkerning defineplaceholder defineplacement \
+definepositioning defineprefixset defineprocesscolor defineprocessor defineprofile \
+defineprogram definepushbutton definepushsymbol definereference definereferenceformat \
+defineregister definerenderingwindow defineresetset defineruby definescale \
+definescript definesection definesectionblock definesectionlevels defineselector \
+defineseparatorset defineshift definesidebar definesort definesorting \
+definespotcolor definestacking definestartstop definestyle definestyleinstance \
+definesubfield definesubformula definesymbol definesynchronize definesynchronizecontent \
 definesynonym definesynonyms definesystemattribute definesystemconstant definesystemvariable \
-definetabletemplate definetabulate definetext definetextbackground definetextflow \
-definetextnote definetokenlist definetooltip definetransparency definetwopasslist \
-definetype definetypeface definetypescriptprefix definetypescriptsynonym definetypesetting \
-definetyping defineunit defineuserdata defineuserdataalternative defineviewerlayer \
-definevspace definevspacing definevspacingamount definextable defrostparagraphproperties \
-delimited delimitedtext delta depthofstring depthonlybox \
-depthspanningtext depthstrut derivativesymbol determineheadnumber determinelistcharacteristics \
-determinenoflines determineregistercharacteristics devanagarinumerals dfrac dhook \
-diameter diamond diamondsuit differentialD differentiald \
-digamma digits dimensiontocount directboxfromcache directcolor \
-directcolored directconvertedcounter directcopyboxfromcache directdummyparameter directgetboxllx \
-directgetboxlly directhighlight directlocalframed directluacode directparwrapper \
-directselect directsetbar directsetup directsymbol directvspacing \
-dis disabledirectives disableexperiments disablemode disableoutputstream \
-disableparpositions disableregime disabletrackers displaymath displaymathematics \
-displaymessage disposeluatable distributedhsize div dividedsize \
-divideontimes divides doadaptleftskip doadaptrightskip doaddfeature \
-doassign doassignempty doboundtext docheckassignment docheckedpair \
-documentvariable dodoubleargument dodoubleargumentwithset dodoubleempty dodoubleemptywithset \
-dodoublegroupempty doeassign doexpandedrecurse dofastloopcs dogetattribute \
+definetabletemplate definetabulate definetabulatemove definetext definetextbackground \
+definetextdisplay definetextflow definetextnote definetokenlist definetooltip \
+definetransparency definetwopasslist definetype definetypeface definetypescriptprefix \
+definetypescriptsynonym definetypesetting definetyping defineunit defineuserdata \
+defineuserdataalternative defineviewerlayer definevspace definevspacing definevspacingamount \
+definextable defrostparagraphproperties deg delimited delimitedtext \
+delta depthlinebottom depthofstring depthonlybox depthspanningtext \
+depthstrut derivative derivativesymbol det determinednoflines \
+determineheadnumber determinelistcharacteristics determinenoflines determineregistercharacteristics devanagarinumerals \
+dfrac dhook diameter diamond diamondsuit \
+diff differentialD differentiald digamma digits \
+dim dimensiontocount directboxfromcache directcolor directcolored \
+directconvertedcounter directcopyboxfromcache directdummyparameter directgetboxllx directgetboxlly \
+directhighlight directlocalframed directluacode directmathextensible directparwrapper \
+directselect directsetbar directsetup directsymbol directtextextensible \
+directvspacing dis disabledelimiter disabledirectives disableexperiments \
+disablefiller disablemode disableoutputstream disableparpositions disableregime \
+disabletrackers displaymath displaymathematics displaymessage disposeluatable \
+distributedhsize div dividedsize divideontimes divides \
+dm doadaptleftskip doadaptrightskip doaddfeature doassign \
+doassignempty doboundtext docheckassignment docheckedpair documentvariable \
+dodoubleargument dodoubleargumentwithset dodoubleempty dodoubleemptywithset dodoublegroupempty \
+doeassign doexpandedrecurse doexpandedrecursed dofastloopcs dogetattribute \
 dogetattributeid dogetcommacommandelement dogobbledoubleempty dogobblesingleempty dohyphens \
 doif doifMPgraphicelse doifallcommon doifallcommonelse doifalldefinedelse \
-doifallmodes doifallmodeselse doifassignmentelse doifassignmentelsecs doifblackelse \
-doifbothsides doifbothsidesoverruled doifboxelse doifbufferelse doifcheckedpagestate \
-doifcolor doifcolorelse doifcommandhandler doifcommandhandlerelse doifcommon \
-doifcommonelse doifcontent doifconversiondefinedelse doifconversionnumberelse doifcounter \
-doifcounterelse doifcurrentfonthasfeatureelse doifdefined doifdefinedcounter doifdefinedcounterelse \
-doifdefinedelse doifdimensionelse doifdimenstringelse doifdocumentargument doifdocumentargumentelse \
-doifdocumentfilename doifdocumentfilenameelse doifdocumentvariable doifdocumentvariableelse doifdrawingblackelse \
-doifelse doifelseMPgraphic doifelseallcommon doifelsealldefined doifelseallmodes \
-doifelseassignment doifelseassignmentcs doifelseblack doifelsebox doifelseboxincache \
-doifelsebuffer doifelsecolor doifelsecommandhandler doifelsecommon doifelseconversiondefined \
-doifelseconversionnumber doifelsecounter doifelsecurrentfonthasfeature doifelsecurrentsortingused doifelsecurrentsynonymshown \
-doifelsecurrentsynonymused doifelsedefined doifelsedefinedcounter doifelsedimension doifelsedimenstring \
-doifelsedocumentargument doifelsedocumentfilename doifelsedocumentvariable doifelsedrawingblack doifelseempty \
-doifelseemptyvalue doifelseemptyvariable doifelseenv doifelsefastoptionalcheck doifelsefastoptionalcheckcs \
-doifelsefieldbody doifelsefieldcategory doifelsefigure doifelsefile doifelsefiledefined \
-doifelsefileexists doifelsefirstchar doifelseflagged doifelsefontchar doifelsefontfeature \
-doifelsefontpresent doifelsefontsynonym doifelseframed doifelsehasspace doifelsehelp \
-doifelseincsname doifelseindented doifelseinelement doifelseinputfile doifelseinsertion \
-doifelseinset doifelseinstring doifelseinsymbolset doifelseintoks doifelseintwopassdata \
-doifelseitalic doifelselanguage doifelselayerdata doifelselayoutdefined doifelselayoutsomeline \
-doifelselayouttextline doifelseleapyear doifelselist doifelselocation doifelselocfile \
-doifelsemainfloatbody doifelsemarkedcontent doifelsemarkedpage doifelsemarking doifelsemeaning \
-doifelsemessage doifelsemode doifelsenextbgroup doifelsenextbgroupcs doifelsenextchar \
-doifelsenextoptional doifelsenextoptionalcs doifelsenextparenthesis doifelsenonzeropositive doifelsenoteonsamepage \
-doifelsenothing doifelsenumber doifelseobjectfound doifelseobjectreferencefound doifelseoddpage \
-doifelseoddpagefloat doifelseoldercontext doifelseolderversion doifelseorientation doifelseoverlapping \
-doifelseoverlay doifelseparallel doifelseparentfile doifelseparwrapper doifelsepath \
-doifelsepathexists doifelsepatterns doifelseposition doifelsepositionaction doifelsepositiononpage \
-doifelsepositionsonsamepage doifelsepositionsonthispage doifelsepositionsused doifelsereferencefound doifelserightpage \
-doifelserightpagefloat doifelserighttoleftinbox doifelsesamelinereference doifelsesamestring doifelsesetups \
-doifelsesomebackground doifelsesomespace doifelsesomething doifelsesometoks doifelsestringinstring \
-doifelsestructurelisthasnumber doifelsestructurelisthaspage doifelsesymboldefined doifelsesymbolset doifelsetext \
-doifelsetextflow doifelsetextflowcollector doifelsetopofpage doifelsetypingfile doifelseundefined \
-doifelseurldefined doifelsevalue doifelsevaluenothing doifelsevariable doifempty \
-doifemptyelse doifemptytoks doifemptyvalue doifemptyvalueelse doifemptyvariable \
-doifemptyvariableelse doifenv doifenvelse doiffastoptionalcheckcselse doiffastoptionalcheckelse \
-doiffieldbodyelse doiffieldcategoryelse doiffigureelse doiffile doiffiledefinedelse \
-doiffileelse doiffileexistselse doiffirstcharelse doifflaggedelse doiffontcharelse \
-doiffontfeatureelse doiffontpresentelse doiffontsynonymelse doifhasspaceelse doifhelpelse \
-doifincsnameelse doifinelementelse doifinputfileelse doifinsertionelse doifinset \
-doifinsetelse doifinstring doifinstringelse doifinsymbolset doifinsymbolsetelse \
-doifintokselse doifintwopassdataelse doifitalicelse doiflanguageelse doiflayerdataelse \
-doiflayoutdefinedelse doiflayoutsomelineelse doiflayouttextlineelse doifleapyearelse doiflistelse \
-doiflocationelse doiflocfileelse doifmainfloatbodyelse doifmarkingelse doifmeaningelse \
-doifmessageelse doifmode doifmodeelse doifnextbgroupcselse doifnextbgroupelse \
-doifnextcharelse doifnextoptionalcselse doifnextoptionalelse doifnextparenthesiselse doifnonzeropositiveelse \
-doifnot doifnotallcommon doifnotallmodes doifnotcommandhandler doifnotcommon \
-doifnotcounter doifnotdocumentargument doifnotdocumentfilename doifnotdocumentvariable doifnotempty \
-doifnotemptyvalue doifnotemptyvariable doifnotenv doifnoteonsamepageelse doifnotescollected \
-doifnotfile doifnotflagged doifnothing doifnothingelse doifnotinset \
-doifnotinsidesplitfloat doifnotinstring doifnotmode doifnotnumber doifnotsamestring \
-doifnotsetups doifnotvalue doifnotvariable doifnumber doifnumberelse \
-doifobjectfoundelse doifobjectreferencefoundelse doifoddpageelse doifoddpagefloatelse doifoldercontextelse \
-doifolderversionelse doifoutervmode doifoverlappingelse doifoverlayelse doifparallelelse \
-doifparentfileelse doifpathelse doifpathexistselse doifpatternselse doifposition \
-doifpositionaction doifpositionactionelse doifpositionelse doifpositiononpageelse doifpositionsonsamepageelse \
-doifpositionsonthispageelse doifpositionsusedelse doifreferencefoundelse doifrightpageelse doifrightpagefloatelse \
-doifrighttoleftinboxelse doifsamelinereferenceelse doifsamestring doifsamestringelse doifsetups \
-doifsetupselse doifsomebackground doifsomebackgroundelse doifsomespaceelse doifsomething \
-doifsomethingelse doifsometoks doifsometokselse doifstringinstringelse doifstructurelisthasnumberelse \
-doifstructurelisthaspageelse doifsymboldefinedelse doifsymbolsetelse doiftext doiftextelse \
-doiftextflowcollectorelse doiftextflowelse doiftopofpageelse doiftypingfileelse doifundefined \
-doifundefinedcounter doifundefinedelse doifunknownfontfeature doifurldefinedelse doifvalue \
-doifvalueelse doifvaluenothing doifvaluenothingelse doifvaluesomething doifvariable \
-doifvariableelse doindentation dollar doloop doloopoverlist \
-donothing dontconvertfont dontleavehmode dontpermitspacesbetweengroups dopositionaction \
-doprocesslocalsetups doquadrupleargument doquadrupleempty doquadruplegroupempty doquintupleargument \
-doquintupleempty doquintuplegroupempty dorechecknextindentation dorecurse dorepeatwithcommand \
-doreplacefeature doresetandafffeature doresetattribute dorotatebox dosetattribute \
-dosetleftskipadaption dosetrightskipadaption dosetupcheckedinterlinespace doseventupleargument doseventupleempty \
-dosingleargument dosingleempty dosinglegroupempty dosixtupleargument dosixtupleempty \
-dosomebreak dostepwiserecurse dosubtractfeature dot doteq \
-doteqdot dotfill dotfskip dotlessI dotlessJ \
-dotlessi dotlessj dotlessjstroke dotminus dotoks \
-dotplus dotripleargument dotripleargumentwithset dotripleempty dotripleemptywithset \
-dotriplegroupempty dots dottedcircle dottedrightarrow doublebar \
-doublebond doublebrace doublebracket doublecap doublecup \
-doubleparent doubleprime doubleverticalbar dowith dowithnextbox \
-dowithnextboxcontent dowithnextboxcontentcs dowithnextboxcs dowithpargument dowithrange \
-dowithwargument downarrow downdasharrow downdownarrows downharpoonleft \
-downharpoonright downuparrows downwhitearrow downzigzagarrow dpofstring \
-dstroke dtail dummydigit dummyparameter dzcaronligature \
-dzligature eTeX eacute ebreve ecaron \
-ecedilla ecircumflex ecircumflexacute ecircumflexdotbelow ecircumflexgrave \
-ecircumflexhook ecircumflextilde edefconvertedargument ediaeresis edotaccent \
-edotbelow edoublegrave ee efcmaxheight efcmaxwidth \
+doifallmodes doifallmodeselse doifallundefinedelse doifassignmentelse doifassignmentelsecs \
+doifblackelse doifbothsides doifbothsidesoverruled doifboxelse doifbufferelse \
+doifcheckedpagestate doifcolor doifcolorelse doifcommandhandler doifcommandhandlerelse \
+doifcommon doifcommonelse doifcontent doifconversiondefinedelse doifconversionnumberelse \
+doifcounter doifcounterelse doifcurrentfonthasfeatureelse doifdefined doifdefinedcounter \
+doifdefinedcounterelse doifdefinedelse doifdimensionelse doifdimenstringelse doifdocumentargument \
+doifdocumentargumentelse doifdocumentfilename doifdocumentfilenameelse doifdocumentvariable doifdocumentvariableelse \
+doifdrawingblackelse doifelse doifelseMPgraphic doifelseallcommon doifelsealldefined \
+doifelseallmodes doifelseallundefined doifelseassignment doifelseassignmentcs doifelseblack \
+doifelseblocksempty doifelsebox doifelseboxincache doifelsebuffer doifelsecolor \
+doifelsecommandhandler doifelsecommon doifelseconversiondefined doifelseconversionnumber doifelsecounter \
+doifelsecurrentfonthasfeature doifelsecurrentsortingused doifelsecurrentsynonymshown doifelsecurrentsynonymused doifelsedefined \
+doifelsedefinedcounter doifelsedimension doifelsedimenstring doifelsedocumentargument doifelsedocumentfilename \
+doifelsedocumentvariable doifelsedrawingblack doifelseempty doifelseemptyvalue doifelseemptyvariable \
+doifelseenv doifelsefastoptionalcheck doifelsefastoptionalcheckcs doifelsefieldbody doifelsefieldcategory \
+doifelsefigure doifelsefile doifelsefiledefined doifelsefileexists doifelsefirstchar \
+doifelseflagged doifelsefontchar doifelsefontfeature doifelsefontpresent doifelsefontsynonym \
+doifelseframed doifelsehasspace doifelsehelp doifelseincsname doifelseindented \
+doifelseinelement doifelseinputfile doifelseinsertion doifelseinset doifelseinstring \
+doifelseinsymbolset doifelseintoks doifelseintwopassdata doifelseitalic doifelselanguage \
+doifelselayerdata doifelselayoutdefined doifelselayoutsomeline doifelselayouttextline doifelseleapyear \
+doifelselist doifelselocation doifelselocfile doifelsemainfloatbody doifelsemarkedcontent \
+doifelsemarkedpage doifelsemarking doifelsemessage doifelsemode doifelsenextbgroup \
+doifelsenextbgroupcs doifelsenextchar doifelsenextoptional doifelsenextoptionalcs doifelsenextparenthesis \
+doifelsenonzeropositive doifelsenoteonsamepage doifelsenothing doifelsenumber doifelseobjectfound \
+doifelseobjectreferencefound doifelseoddpage doifelseoddpagefloat doifelseoldercontext doifelseolderversion \
+doifelseorientation doifelseoverlapping doifelseoverlay doifelseparallel doifelseparentfile \
+doifelseparwrapper doifelsepath doifelsepathexists doifelsepatterns doifelseposition \
+doifelsepositionaction doifelsepositiononpage doifelsepositionsonsamepage doifelsepositionsonthispage doifelsepositionsused \
+doifelsereferencefound doifelserightpage doifelserightpagefloat doifelserighttoleftinbox doifelsesamelinereference \
+doifelsesamestring doifelsesetups doifelsesimilartokens doifelsesomebackground doifelsesomespace \
+doifelsesomething doifelsesometoks doifelsestringinstring doifelsestructurelisthasnumber doifelsestructurelisthaspage \
+doifelsesymboldefined doifelsesymbolset doifelsetext doifelsetextflow doifelsetextflowcollector \
+doifelsetopofpage doifelsetypingfile doifelseundefined doifelseurldefined doifelsevalue \
+doifelsevaluenothing doifelsevariable doifempty doifemptyelse doifemptytoks \
+doifemptyvalue doifemptyvalueelse doifemptyvariable doifemptyvariableelse doifenv \
+doifenvelse doiffastoptionalcheckcselse doiffastoptionalcheckelse doiffieldbodyelse doiffieldcategoryelse \
+doiffigureelse doiffile doiffiledefinedelse doiffileelse doiffileexistselse \
+doiffirstcharelse doifflaggedelse doiffontcharelse doiffontfeatureelse doiffontpresentelse \
+doiffontsynonymelse doifhasspaceelse doifhelpelse doifincsnameelse doifinelementelse \
+doifinputfileelse doifinsertionelse doifinset doifinsetelse doifinstring \
+doifinstringelse doifinsymbolset doifinsymbolsetelse doifintokselse doifintwopassdataelse \
+doifitalicelse doiflanguageelse doiflayerdataelse doiflayoutdefinedelse doiflayoutsomelineelse \
+doiflayouttextlineelse doifleapyearelse doiflistelse doiflocationelse doiflocfileelse \
+doifmainfloatbodyelse doifmarkedpage doifmarkingelse doifmessageelse doifmode \
+doifmodeelse doifnextbgroupcselse doifnextbgroupelse doifnextcharelse doifnextoptionalcselse \
+doifnextoptionalelse doifnextparenthesiselse doifnonzeropositiveelse doifnot doifnotallcommon \
+doifnotallmodes doifnotcommandhandler doifnotcommon doifnotcounter doifnotdocumentargument \
+doifnotdocumentfilename doifnotdocumentvariable doifnotempty doifnotemptyvalue doifnotemptyvariable \
+doifnotenv doifnoteonsamepageelse doifnotescollected doifnotfile doifnotflagged \
+doifnothing doifnothingelse doifnotinset doifnotinsidesplitfloat doifnotinstring \
+doifnotmode doifnotnumber doifnotsamestring doifnotsetups doifnotvalue \
+doifnotvariable doifnumber doifnumberelse doifobjectfoundelse doifobjectreferencefoundelse \
+doifoddpageelse doifoddpagefloatelse doifoldercontextelse doifolderversionelse doifoutervmode \
+doifoverlappingelse doifoverlayelse doifparallelelse doifparentfileelse doifpathelse \
+doifpathexistselse doifpatternselse doifposition doifpositionaction doifpositionactionelse \
+doifpositionelse doifpositiononpageelse doifpositionsonsamepageelse doifpositionsonthispageelse doifpositionsusedelse \
+doifreferencefoundelse doifrightpageelse doifrightpagefloatelse doifrighttoleftinboxelse doifsamelinereferenceelse \
+doifsamestring doifsamestringelse doifsetups doifsetupselse doifsomebackground \
+doifsomebackgroundelse doifsomespaceelse doifsomething doifsomethingelse doifsometoks \
+doifsometokselse doifstringinstringelse doifstructurelisthasnumberelse doifstructurelisthaspageelse doifsymboldefinedelse \
+doifsymbolsetelse doiftext doiftextelse doiftextflowcollectorelse doiftextflowelse \
+doiftopofpageelse doiftypingfileelse doifundefined doifundefinedcounter doifundefinedelse \
+doifunknownfontfeature doifurldefinedelse doifvalue doifvalueelse doifvaluenothing \
+doifvaluenothingelse doifvaluesomething doifvariable doifvariableelse doindentation \
+dollar doloop doloopoverlist donothing dontconvertfont \
+dontleavehmode dontpermitspacesbetweengroups dopositionaction doprocesslocalsetups doquadrupleargument \
+doquadrupleempty doquadruplegroupempty doquintupleargument doquintupleempty doquintuplegroupempty \
+dorechecknextindentation dorecurse dorepeatwithcommand doreplacefeature doresetandaddfeature \
+doresetattribute dorotatebox dosetattribute dosetleftskipadaption dosetrightskipadaption \
+dosetupcheckedinterlinespace doseventupleargument doseventupleempty dosingleargument dosingleempty \
+dosinglegroupempty dosixtupleargument dosixtupleempty dosomebreak dostepwiserecurse \
+dosubtractfeature dot doteq doteqdot dotfill \
+dotfskip dotlessI dotlessJ dotlessi dotlessj \
+dotlessjstroke dotminus dotoks dotplus dotripleargument \
+dotripleargumentwithset dotripleempty dotripleemptywithset dotriplegroupempty dots \
+dottedcircle dottedrightarrow doublebar doublebarint doublebond \
+doublebrace doublebracket doublecap doublecup doubleparent \
+doubleprime doubleprimed doublereverseprimed doubleverticalbar dowith \
+dowithnextbox dowithnextboxcontent dowithnextboxcontentcs dowithnextboxcs dowithpargument \
+dowithrange dowithwargument downarrow downdasharrow downdownarrows \
+downharpoonleft downharpoonright downuparrows downwhitearrow downzigzagarrow \
+dpofstring dstroke dtail dummydigit dummyparameter \
+dzcaronligature dzligature eTeX eacute ebreve \
+ecaron ecedilla ecircumflex ecircumflexacute ecircumflexdotbelow \
+ecircumflexgrave ecircumflexhook ecircumflextilde edefconvertedargument ediaeresis \
+edotaccent edotbelow edoublegrave efcmaxheight efcmaxwidth \
 efcminheight efcminwidth efcparameter effect egrave \
 ehook einvertedbreve elapsedseconds elapsedsteptime elapsedtime \
-eleftarrowfill eleftharpoondownfill eleftharpoonupfill eleftrightarrowfill ell \
-em emacron emdash emphasisboldface emphasistypeface \
-emptylines emptyset emquad emspace enableasciimode \
-enabledirectives enableexperiments enablemode enableoutputstream enableparpositions \
-enableregime enabletrackers endash endnote enquad \
-enskip enspace env environment envvar \
-eogonek eoverbarfill eoverbracefill eoverbracketfill eoverparentfill \
-epos epsilon eq eqcirc eqeq \
-eqeqeq eqgtr eqless eqsim eqslantgtr \
-eqslantless equaldigits equalscolon equiv erightarrowfill \
-erightharpoondownfill erightharpoonupfill eta eth ethiopic \
-etilde etwoheadrightarrowfill eunderbarfill eunderbracefill eunderbracketfill \
-eunderparentfill exclamdown executeifdefined exists exitloop \
-exitloopnow expandcheckedcsname expanded expandeddoif expandeddoifelse \
-expandeddoifnot expandfontsynonym expdoif expdoifcommonelse expdoifelse \
-expdoifelsecommon expdoifelseinset expdoifinsetelse expdoifnot exponentiale \
-externalfigure externalfigurecollectionmaxheight externalfigurecollectionmaxwidth externalfigurecollectionminheight externalfigurecollectionminwidth \
-externalfigurecollectionparameter fakebox fallingdotseq fastdecrement fastincrement \
-fastlocalframed fastloopfinal fastloopindex fastscale fastsetup \
-fastsetupwithargument fastsetupwithargumentswapped fastswitchtobodyfont fastsxsy feature \
-fence fenced fetchallmarkings fetchallmarks fetchmark \
-fetchmarking fetchonemark fetchonemarking fetchruntinecommand fetchtwomarkings \
-fetchtwomarks ffiligature ffligature fflligature fhook \
-field fieldbody fieldstack fifthoffivearguments fifthofsixarguments \
-figuredash figurefilename figurefilepath figurefiletype figurefullname \
-figureheight figurenaturalheight figurenaturalwidth figurespace figuresymbol \
-figurewidth filename filigature filledhboxb filledhboxc \
-filledhboxg filledhboxk filledhboxm filledhboxr filledhboxy \
-filler fillinline fillinrules fillintext fillupto \
-filterfromnext filterfromvalue filterpages filterreference findtwopassdata \
-finishregisterentry firstcharacter firstcounter firstcountervalue firstinlist \
-firstoffivearguments firstoffourarguments firstofoneargument firstofoneunexpanded firstofsixarguments \
-firstofthreearguments firstofthreeunexpanded firstoftwoarguments firstoftwounexpanded firstrealpage \
-firstrealpagenumber firstsubcountervalue firstsubpage firstsubpagenumber firstuserpage \
-firstuserpagenumber fitfield fitfieldframed fittopbaselinegrid fiveeighths \
-fivesixths fixedspace fixedspaces flag flat \
-flligature floatuserdataparameter flushbox flushboxregister flushcollector \
-flushedrightlastline flushlayer flushlocalfloats flushnextbox flushnotes \
-flushoutputstream flushshapebox flushtextflow flushtokens flushtoks \
-fontalternative fontbody fontchar fontcharbyindex fontclass \
-fontclassname fontface fontfeaturelist fontsize fontstyle \
-footnote footnotetext forall forcecharacterstripping forcelocalfloats \
-forgeteverypar forgetparagraphfreezing forgetparameters forgetparskip forgetparwrapper \
-forgetragged formula formulanumber foundbox fourfifths \
-fourperemspace fourthderivativesymbol fourthoffivearguments fourthoffourarguments fourthofsixarguments \
+ell em emacron emdash emphasisboldface \
+emphasistypeface emptylines emptyset emquad emspace \
+enableasciimode enabledelimiter enabledirectives enableexperiments enablefiller \
+enablemode enableoutputstream enableparpositions enableregime enabletrackers \
+endash endnote enquad enskip enspace \
+env environment envvar eogonek epos \
+epsilon eq eqcirc eqeq eqeqeq \
+eqgtr eqless eqsim eqslantgtr eqslantless \
+equaldigits equalscolon equaltext equationsystem equiv \
+erf erfc erfi eta eth \
+ethiopic etilde exclamdown executeifdefined exists \
+exitloop exitloopnow exp expandcheckedcsname expanded \
+expandeddoif expandeddoifelse expandeddoifnot expandfontsynonym expdoif \
+expdoifcommonelse expdoifelse expdoifelsecommon expdoifelseinset expdoifinsetelse \
+expdoifnot exponentiale externalfigure externalfigurecollectionmaxheight externalfigurecollectionmaxwidth \
+externalfigurecollectionminheight externalfigurecollectionminwidth externalfigurecollectionparameter fakebox fakeleftdelimiter \
+fakerightdelimiter fallingdotseq fastdecrement fastincrement fastlocalframed \
+fastloopfinal fastloopindex fastscale fastsetup fastsetupwithargument \
+fastsetupwithargumentswapped fastswitchtobodyfont fastsxsy feature fenced \
+fetchallmarkings fetchallmarks fetchmark fetchmarking fetchonemark \
+fetchonemarking fetchruntinecommand fetchtwomarkings fetchtwomarks ffiligature \
+ffligature fflligature fhook field fieldbody \
+fieldstack fifthoffivearguments fifthofsixarguments figuredash figurefilename \
+figurefilepath figurefiletype figurefullname figureheight figurenaturalheight \
+figurenaturalwidth figurespace figuresymbol figurewidth filename \
+filigature filledhboxb filledhboxc filledhboxg filledhboxk \
+filledhboxm filledhboxr filledhboxy filler fillinline \
+fillinrules fillintext fillupto filterfromnext filterfromvalue \
+filterlist filterpages filterreference findtwopassdata finishregisterentry \
+firstcharacter firstcounter firstcountervalue firstinlist firstoffivearguments \
+firstoffourarguments firstofoneargument firstofoneunexpanded firstofsixarguments firstofthreearguments \
+firstofthreeunexpanded firstoftwoarguments firstoftwounexpanded firstrealpage firstrealpagenumber \
+firstsubcountervalue firstsubpage firstsubpagenumber firstuserpage firstuserpagenumber \
+fitfield fitfieldframed fittopbaselinegrid fiveeighths fivesixths \
+fixedspace fixedspaces flag flat flligature \
+floatuserdataparameter floor flushallmarginblocks flushbox flushboxregister \
+flushcollector flushedrightlastline flushinitial flushlayer flushlocalfloats \
+flushnextbox flushnotes flushoutputstream flushpageblocks flushshapebox \
+flushtextflow flushtokens flushtoks fontalternative fontbody \
+fontchar fontcharbyindex fontclass fontclassname fontface \
+fontfeaturelist fontsize fontstyle footnote footnotetext \
+forall forcecharacterstripping forcelocalfloats forgeteverypar forgetinitial \
+forgetparagraphfreezing forgetparameters forgetparskip forgetparwrapper forgetragged \
+formula formulanumber foundbox fourfifths fourperemspace \
+fourthderivative fourthderivativesymbol fourthoffivearguments fourthoffourarguments fourthofsixarguments \
 frac framed frameddimension framedparameter framedtext \
 freezedimenmacro freezemeasure freezeparagraphproperties frenchspacing from \
-fromlinenote frown frozenhbox frule gacute \
-gamma gbreve gcaron gcircumflex gcommaaccent \
-gdefconvertedargument gdefconvertedcommand gdotaccent ge geq \
-geqq geqslant getMPdrawing getMPlayer getboxfromcache \
-getboxllx getboxlly getbuffer getbufferdata getcommacommandsize \
-getcommalistsize getdatavalue getdayoftheweek getdayspermonth getdefinedbuffer \
-getdocumentargument getdocumentargumentdefault getdocumentfilename getdummyparameters getemptyparameters \
-geteparameters getexpandedparameters getfiguredimensions getfirstcharacter getfirsttwopassdata \
-getfromcommacommand getfromcommalist getfromluatable getfromtwopassdata getglyphdirect \
-getglyphstyled getgparameters getinlineuserdata getlasttwopassdata getlocalfloat \
-getlocalfloats getmarking getmessage getnamedglyphdirect getnamedglyphstyled \
-getnamedtwopassdatalist getnaturaldimensions getnoflines getobject getobjectdimensions \
-getpaletsize getparameters getparwrapper getprivatechar getprivateslot \
-getrandomcount getrandomdimen getrandomfloat getrandomnumber getrandomseed \
-getraweparameters getrawgparameters getrawnoflines getrawparameters getrawxparameters \
-getreference getreferenceentry getroundednoflines gets getsubstring \
-gettokenlist gettwopassdata gettwopassdatalist getuserdata getuvalue \
-getvalue getvariable getvariabledefault getxparameters gg \
-ggg gggtr gimel globaldisablemode globalenablemode \
-globalletempty globalpopbox globalpopmacro globalpreventmode globalprocesscommalist \
-globalpushbox globalpushmacro globalswapcounts globalswapdimens globalswapmacros \
-globalundefine glyphfontfile gnapprox gneqq gnsim \
+fromlinenote frown frozenhbox frule fsp \
+fullouterjoin gacute gamma gbreve gcaron \
+gcd gcircumflex gcommaaccent gdefconvertedargument gdefconvertedcommand \
+gdotaccent ge geq geqq geqslant \
+getMPdrawing getMPlayer getboxfromcache getboxllx getboxlly \
+getbuffer getbufferdata getcommacommandsize getcommalistsize getdatavalue \
+getdayoftheweek getdayspermonth getdefinedbuffer getdocumentargument getdocumentargumentdefault \
+getdocumentfilename getdummyparameters getemptyparameters geteparameters getexpandedparameters \
+getfiguredimensions getfirstcharacter getfirsttwopassdata getfromcommacommand getfromcommalist \
+getfromluatable getfromtwopassdata getglyphdirect getglyphstyled getgparameters \
+getinlineuserdata getlasttwopassdata getlocalfloat getlocalfloats getmarking \
+getmessage getnamedglyphdirect getnamedglyphstyled getnamedtwopassdatalist getnaturaldimensions \
+getnoflines getobject getobjectdimensions getpaletsize getparameters \
+getparwrapper getprivatechar getprivateslot getrandomcount getrandomdimen \
+getrandomfloat getrandomnumber getrandomseed getraweparameters getrawgparameters \
+getrawnoflines getrawparameters getrawxparameters getreference getreferenceentry \
+getroundednoflines gets getshapetext getsubstring gettokenlist \
+gettwopassdata gettwopassdatalist getuserdata getuvalue getvalue \
+getvariable getvariabledefault getxparameters gg ggg \
+gggtr gimel globaldisablemode globalenablemode globalletempty \
+globalpopbox globalpopmacro globalpreventmode globalprocesscommalist globalpushbox \
+globalpushmacro globalswapcounts globalswapdimens globalswapmacros globalundefine \
+glyphfontfile gmatrix gnapprox gneqq gnsim \
 gobbledoubleempty gobbleeightarguments gobblefivearguments gobblefiveoptionals gobblefourarguments \
 gobblefouroptionals gobbleninearguments gobbleoneargument gobbleoneoptional gobblesevenarguments \
 gobblesingleempty gobblesixarguments gobblespacetokens gobbletenarguments gobblethreearguments \
-gobblethreeoptionals gobbletwoarguments gobbletwooptionals gobbleuntil gobbleuntilrelax \
-godown goto gotobox gotopage grabbufferdata \
-grabbufferdatadirect grabuntil gradient grave graycolor \
-grayvalue greedysplitstring greekAlpha greekAlphadasia greekAlphadasiaperispomeni \
-greekAlphadasiatonos greekAlphadasiavaria greekAlphaiotasub greekAlphaiotasubdasia greekAlphaiotasubdasiaperispomeni \
-greekAlphaiotasubdasiatonos greekAlphaiotasubdasiavaria greekAlphaiotasubpsili greekAlphaiotasubpsiliperispomeni greekAlphaiotasubpsilitonos \
-greekAlphaiotasubpsilivaria greekAlphamacron greekAlphapsili greekAlphapsiliperispomeni greekAlphapsilitonos \
-greekAlphapsilivaria greekAlphatonos greekAlphavaria greekAlphavrachy greekBeta \
-greekChi greekCoronis greekDelta greekEpsilon greekEpsilondasia \
-greekEpsilondasiatonos greekEpsilondasiavaria greekEpsilonpsili greekEpsilonpsilitonos greekEpsilonpsilivaria \
-greekEpsilontonos greekEpsilonvaria greekEta greekEtadasia greekEtadasiaperispomeni \
-greekEtadasiatonos greekEtadasiavaria greekEtaiotasub greekEtaiotasubdasia greekEtaiotasubdasiaperispomeni \
-greekEtaiotasubdasiatonos greekEtaiotasubdasiavaria greekEtaiotasubpsili greekEtaiotasubpsiliperispomeni greekEtaiotasubpsilitonos \
-greekEtaiotasubpsilivaria greekEtapsili greekEtapsiliperispomeni greekEtapsilitonos greekEtapsilivaria \
-greekEtatonos greekEtavaria greekGamma greekIota greekIotadasia \
-greekIotadasiaperispomeni greekIotadasiatonos greekIotadasiavaria greekIotadialytika greekIotamacron \
-greekIotapsili greekIotapsiliperispomeni greekIotapsilitonos greekIotapsilivaria greekIotatonos \
-greekIotavaria greekIotavrachy greekKappa greekLambda greekMu \
-greekNu greekOmega greekOmegadasia greekOmegadasiaperispomeni greekOmegadasiatonos \
-greekOmegadasiavaria greekOmegaiotasub greekOmegaiotasubdasia greekOmegaiotasubdasiaperispomeni greekOmegaiotasubdasiatonos \
-greekOmegaiotasubdasiavaria greekOmegaiotasubpsili greekOmegaiotasubpsiliperispomeni greekOmegaiotasubpsilitonos greekOmegaiotasubpsilivaria \
-greekOmegapsili greekOmegapsiliperispomeni greekOmegapsilitonos greekOmegapsilivaria greekOmegatonos \
-greekOmegavaria greekOmicron greekOmicrondasia greekOmicrondasiatonos greekOmicrondasiavaria \
-greekOmicronpsili greekOmicronpsilitonos greekOmicronpsilivaria greekOmicrontonos greekOmicronvaria \
-greekPhi greekPi greekPsi greekRho greekRhodasia \
-greekSigma greekSigmalunate greekTau greekTheta greekUpsilon \
-greekUpsilondasia greekUpsilondasiaperispomeni greekUpsilondasiatonos greekUpsilondasiavaria greekUpsilondialytika \
-greekUpsilonmacron greekUpsilontonos greekUpsilonvaria greekUpsilonvrachy greekXi \
-greekZeta greekalpha greekalphadasia greekalphadasiaperispomeni greekalphadasiatonos \
-greekalphadasiavaria greekalphaiotasub greekalphaiotasubdasia greekalphaiotasubdasiaperispomeni greekalphaiotasubdasiatonos \
-greekalphaiotasubdasiavaria greekalphaiotasubperispomeni greekalphaiotasubpsili greekalphaiotasubpsiliperispomeni greekalphaiotasubpsilitonos \
-greekalphaiotasubpsilivaria greekalphaiotasubtonos greekalphaiotasubvaria greekalphamacron greekalphaoxia \
-greekalphaperispomeni greekalphapsili greekalphapsiliperispomeni greekalphapsilitonos greekalphapsilivaria \
-greekalphatonos greekalphavaria greekalphavrachy greekbeta greekbetaalt \
-greekchi greekdasia greekdasiaperispomeni greekdasiavaria greekdelta \
-greekdialytikaperispomeni greekdialytikatonos greekdialytikavaria greekdigamma greekepsilon \
-greekepsilonalt greekepsilondasia greekepsilondasiatonos greekepsilondasiavaria greekepsilonoxia \
-greekepsilonpsili greekepsilonpsilitonos greekepsilonpsilivaria greekepsilontonos greekepsilonvaria \
-greeketa greeketadasia greeketadasiaperispomeni greeketadasiatonos greeketadasiavaria \
-greeketaiotasub greeketaiotasubdasia greeketaiotasubdasiaperispomeni greeketaiotasubdasiatonos greeketaiotasubdasiavaria \
-greeketaiotasubperispomeni greeketaiotasubpsili greeketaiotasubpsiliperispomeni greeketaiotasubpsilitonos greeketaiotasubpsilivaria \
-greeketaiotasubtonos greeketaiotasubvaria greeketaoxia greeketaperispomeni greeketapsili \
-greeketapsiliperispomeni greeketapsilitonos greeketapsilivaria greeketatonos greeketavaria \
-greekfinalsigma greekgamma greekiota greekiotadasia greekiotadasiaperispomeni \
-greekiotadasiatonos greekiotadasiavaria greekiotadialytika greekiotadialytikaperispomeni greekiotadialytikatonos \
-greekiotadialytikavaria greekiotamacron greekiotaoxia greekiotaperispomeni greekiotapsili \
-greekiotapsiliperispomeni greekiotapsilitonos greekiotapsilivaria greekiotatonos greekiotavaria \
-greekiotavrachy greekkappa greekkoppa greeklambda greekmu \
-greeknu greeknumerals greeknumkoppa greekomega greekomegadasia \
-greekomegadasiaperispomeni greekomegadasiatonos greekomegadasiavaria greekomegaiotasub greekomegaiotasubdasia \
-greekomegaiotasubdasiaperispomeni greekomegaiotasubdasiatonos greekomegaiotasubdasiavaria greekomegaiotasubperispomeni greekomegaiotasubpsili \
-greekomegaiotasubpsiliperispomeni greekomegaiotasubpsilitonos greekomegaiotasubpsilivaria greekomegaiotasubtonos greekomegaiotasubvaria \
-greekomegaoxia greekomegaperispomeni greekomegapsili greekomegapsiliperispomeni greekomegapsilitonos \
-greekomegapsilivaria greekomegatonos greekomegavaria greekomicron greekomicrondasia \
-greekomicrondasiatonos greekomicrondasiavaria greekomicronoxia greekomicronpsili greekomicronpsilitonos \
-greekomicronpsilivaria greekomicrontonos greekomicronvaria greekoxia greekperispomeni \
-greekphi greekphialt greekpi greekpialt greekprosgegrammeni \
-greekpsi greekpsili greekpsiliperispomeni greekpsilivaria greekrho \
-greekrhoalt greekrhodasia greekrhopsili greeksampi greeksigma \
-greeksigmalunate greekstigma greektau greektheta greekthetaalt \
-greektonos greekupsilon greekupsilondasia greekupsilondasiaperispomeni greekupsilondasiatonos \
-greekupsilondasiavaria greekupsilondiaeresis greekupsilondialytikaperispomeni greekupsilondialytikatonos greekupsilondialytikavaria \
-greekupsilonmacron greekupsilonoxia greekupsilonperispomeni greekupsilonpsili greekupsilonpsiliperispomeni \
-greekupsilonpsilitonos greekupsilonpsilivaria greekupsilontonos greekupsilonvaria greekupsilonvrachy \
-greekvaria greekxi greekzeta grid groupedcommand \
-gsetboxllx gsetboxlly gstroke gt gtrapprox \
-gtrdot gtreqless gtreqqless gtrless gtrsim \
-guilsingleleft guilsingleright gujaratinumerals gurmurkhinumerals hairline \
-hairspace halflinestrut halfstrut halfwaybox handletokens \
-handwritten hangul hanzi hash hat \
-hbar hboxofvbox hboxreference hcaron hcircumflex \
-hdofstring headhbox headlanguage headnumber headnumbercontent \
-headnumberdistance headnumberwidth headreferenceattributes headsetupspacing headtext \
-headtextcontent headtextdistance headtexts headtextwidth headvbox \
-headwidth heartsuit hebrewAlef hebrewAyin hebrewBet \
-hebrewDalet hebrewGimel hebrewHe hebrewHet hebrewKaf \
-hebrewKaffinal hebrewLamed hebrewMem hebrewMemfinal hebrewNun \
-hebrewNunfinal hebrewPe hebrewPefinal hebrewQof hebrewResh \
-hebrewSamekh hebrewShin hebrewTav hebrewTet hebrewTsadi \
-hebrewTsadifinal hebrewVav hebrewYod hebrewZayin hebrewnumerals \
-heightanddepthofstring heightofstring heightspanningtext helptext hexnumber \
-hexstringtonumber hglue hiddenbar hiddencitation hiddencite \
-hideblocks high highlight highordinalstr hilo \
-himilo hl hookleftarrow hookrightarrow horizontalgrowingbar \
-horizontalpositionbar hpackbox hpackedbox hphantom hpos \
-hsizefraction hslash hsmash hsmashbox hsmashed \
-hspace hstroke htdpofstring htofstring hyphen \
-hyphenatedcoloredword hyphenatedfile hyphenatedfilename hyphenatedhbox hyphenatedpar \
-hyphenatedurl hyphenatedword iacute ibox ibreve \
-icaron icircumflex ideographichalffillspace ideographicspace idiaeresis \
-idotaccent idotbelow idoublegrave idxfromluatable ifassignment \
-iff ifinobject ifinoutputstream ifparameters iftrialtypesetting \
-ignoreimplicitspaces ignoretagsinexport ignorevalue igrave ihook \
-ii iiiint iiiintop iiint iiintop \
-iint iintop iinvertedbreve ijligature imacron \
-imaginaryi imaginaryj imath immediatesavetwopassdata impliedby \
-implies imply in includemenu includesvgbuffer \
-includesvgfile includeversioninfo increment incrementcounter incrementedcounter \
-incrementpagenumber incrementsubpagenumber incrementvalue indentation index \
-infofont infofontbold inframed infty infull \
-inheritparameter inhibitblank ininner ininneredge ininnermargin \
-initializeboxstack inleft inleftedge inleftmargin inline \
-inlinebuffer inlinedbox inlinemath inlinemathematics inlinemessage \
-inlineordisplaymath inlineprettyprintbuffer inlinerange inmargin inmframed \
-innerflushshapebox inother inouter inouteredge inoutermargin \
-input inputfilebarename inputfilename inputfilerealsuffix inputfilesuffix \
-inputgivenfile inright inrightedge inrightmargin insertpages \
+gobblethreeoptionals gobbletwoarguments gobbletwooptionals gobbleuntil gobbleuntilandfinalize \
+gobbleuntilrelax godown goto gotobox gotopage \
+grabbufferdata grabbufferdatadirect grabuntil gradient grave \
+graycolor grayvalue greedysplitstring greekAlpha greekAlphadasia \
+greekAlphadasiaperispomeni greekAlphadasiatonos greekAlphadasiavaria greekAlphaiotasub greekAlphaiotasubdasia \
+greekAlphaiotasubdasiaperispomeni greekAlphaiotasubdasiatonos greekAlphaiotasubdasiavaria greekAlphaiotasubpsili greekAlphaiotasubpsiliperispomeni \
+greekAlphaiotasubpsilitonos greekAlphaiotasubpsilivaria greekAlphamacron greekAlphapsili greekAlphapsiliperispomeni \
+greekAlphapsilitonos greekAlphapsilivaria greekAlphatonos greekAlphavaria greekAlphavrachy \
+greekBeta greekChi greekCoronis greekDelta greekEpsilon \
+greekEpsilondasia greekEpsilondasiatonos greekEpsilondasiavaria greekEpsilonpsili greekEpsilonpsilitonos \
+greekEpsilonpsilivaria greekEpsilontonos greekEpsilonvaria greekEta greekEtadasia \
+greekEtadasiaperispomeni greekEtadasiatonos greekEtadasiavaria greekEtaiotasub greekEtaiotasubdasia \
+greekEtaiotasubdasiaperispomeni greekEtaiotasubdasiatonos greekEtaiotasubdasiavaria greekEtaiotasubpsili greekEtaiotasubpsiliperispomeni \
+greekEtaiotasubpsilitonos greekEtaiotasubpsilivaria greekEtapsili greekEtapsiliperispomeni greekEtapsilitonos \
+greekEtapsilivaria greekEtatonos greekEtavaria greekGamma greekIota \
+greekIotadasia greekIotadasiaperispomeni greekIotadasiatonos greekIotadasiavaria greekIotadialytika \
+greekIotamacron greekIotapsili greekIotapsiliperispomeni greekIotapsilitonos greekIotapsilivaria \
+greekIotatonos greekIotavaria greekIotavrachy greekKappa greekLambda \
+greekMu greekNu greekOmega greekOmegadasia greekOmegadasiaperispomeni \
+greekOmegadasiatonos greekOmegadasiavaria greekOmegaiotasub greekOmegaiotasubdasia greekOmegaiotasubdasiaperispomeni \
+greekOmegaiotasubdasiatonos greekOmegaiotasubdasiavaria greekOmegaiotasubpsili greekOmegaiotasubpsiliperispomeni greekOmegaiotasubpsilitonos \
+greekOmegaiotasubpsilivaria greekOmegapsili greekOmegapsiliperispomeni greekOmegapsilitonos greekOmegapsilivaria \
+greekOmegatonos greekOmegavaria greekOmicron greekOmicrondasia greekOmicrondasiatonos \
+greekOmicrondasiavaria greekOmicronpsili greekOmicronpsilitonos greekOmicronpsilivaria greekOmicrontonos \
+greekOmicronvaria greekPhi greekPi greekPsi greekRho \
+greekRhodasia greekSigma greekSigmalunate greekTau greekTheta \
+greekUpsilon greekUpsilondasia greekUpsilondasiaperispomeni greekUpsilondasiatonos greekUpsilondasiavaria \
+greekUpsilondialytika greekUpsilonmacron greekUpsilontonos greekUpsilonvaria greekUpsilonvrachy \
+greekXi greekZeta greekalpha greekalphadasia greekalphadasiaperispomeni \
+greekalphadasiatonos greekalphadasiavaria greekalphaiotasub greekalphaiotasubdasia greekalphaiotasubdasiaperispomeni \
+greekalphaiotasubdasiatonos greekalphaiotasubdasiavaria greekalphaiotasubperispomeni greekalphaiotasubpsili greekalphaiotasubpsiliperispomeni \
+greekalphaiotasubpsilitonos greekalphaiotasubpsilivaria greekalphaiotasubtonos greekalphaiotasubvaria greekalphamacron \
+greekalphaoxia greekalphaperispomeni greekalphapsili greekalphapsiliperispomeni greekalphapsilitonos \
+greekalphapsilivaria greekalphatonos greekalphavaria greekalphavrachy greekbeta \
+greekbetaalt greekchi greekdasia greekdasiaperispomeni greekdasiavaria \
+greekdelta greekdialytikaperispomeni greekdialytikatonos greekdialytikavaria greekdigamma \
+greekepsilon greekepsilonalt greekepsilondasia greekepsilondasiatonos greekepsilondasiavaria \
+greekepsilonoxia greekepsilonpsili greekepsilonpsilitonos greekepsilonpsilivaria greekepsilontonos \
+greekepsilonvaria greeketa greeketadasia greeketadasiaperispomeni greeketadasiatonos \
+greeketadasiavaria greeketaiotasub greeketaiotasubdasia greeketaiotasubdasiaperispomeni greeketaiotasubdasiatonos \
+greeketaiotasubdasiavaria greeketaiotasubperispomeni greeketaiotasubpsili greeketaiotasubpsiliperispomeni greeketaiotasubpsilitonos \
+greeketaiotasubpsilivaria greeketaiotasubtonos greeketaiotasubvaria greeketaoxia greeketaperispomeni \
+greeketapsili greeketapsiliperispomeni greeketapsilitonos greeketapsilivaria greeketatonos \
+greeketavaria greekfinalsigma greekgamma greekiota greekiotadasia \
+greekiotadasiaperispomeni greekiotadasiatonos greekiotadasiavaria greekiotadialytika greekiotadialytikaperispomeni \
+greekiotadialytikatonos greekiotadialytikavaria greekiotamacron greekiotaoxia greekiotaperispomeni \
+greekiotapsili greekiotapsiliperispomeni greekiotapsilitonos greekiotapsilivaria greekiotatonos \
+greekiotavaria greekiotavrachy greekkappa greekkoppa greeklambda \
+greekmu greeknu greeknumerals greeknumkoppa greekomega \
+greekomegadasia greekomegadasiaperispomeni greekomegadasiatonos greekomegadasiavaria greekomegaiotasub \
+greekomegaiotasubdasia greekomegaiotasubdasiaperispomeni greekomegaiotasubdasiatonos greekomegaiotasubdasiavaria greekomegaiotasubperispomeni \
+greekomegaiotasubpsili greekomegaiotasubpsiliperispomeni greekomegaiotasubpsilitonos greekomegaiotasubpsilivaria greekomegaiotasubtonos \
+greekomegaiotasubvaria greekomegaoxia greekomegaperispomeni greekomegapsili greekomegapsiliperispomeni \
+greekomegapsilitonos greekomegapsilivaria greekomegatonos greekomegavaria greekomicron \
+greekomicrondasia greekomicrondasiatonos greekomicrondasiavaria greekomicronoxia greekomicronpsili \
+greekomicronpsilitonos greekomicronpsilivaria greekomicrontonos greekomicronvaria greekoxia \
+greekperispomeni greekphi greekphialt greekpi greekpialt \
+greekprosgegrammeni greekpsi greekpsili greekpsiliperispomeni greekpsilivaria \
+greekrho greekrhoalt greekrhodasia greekrhopsili greeksampi \
+greeksigma greeksigmalunate greekstigma greektau greektheta \
+greekthetaalt greektonos greekupsilon greekupsilondasia greekupsilondasiaperispomeni \
+greekupsilondasiatonos greekupsilondasiavaria greekupsilondiaeresis greekupsilondialytikaperispomeni greekupsilondialytikatonos \
+greekupsilondialytikavaria greekupsilonmacron greekupsilonoxia greekupsilonperispomeni greekupsilonpsili \
+greekupsilonpsiliperispomeni greekupsilonpsilitonos greekupsilonpsilivaria greekupsilontonos greekupsilonvaria \
+greekupsilonvrachy greekvaria greekxi greekzeta grid \
+groupedcommand groupedcommandcs gsetboxllx gsetboxlly gstroke \
+gt gtrapprox gtrdot gtreqless gtreqqless \
+gtrless gtrsim guilsingleleft guilsingleright gujaratinumerals \
+gurmurkhinumerals hairline hairspace halflinestrut halfstrut \
+halfwaybox handletokens handwritten hangul hanzi \
+hash hat hatmarked hbar hboxofvbox \
+hboxreference hcaron hcircumflex hdofstring headhbox \
+headlanguage headnumber headnumbercontent headnumberdistance headnumberwidth \
+headreferenceattributes headsetupspacing headtext headtextcontent headtextdistance \
+headtexts headtextwidth headvbox headwidth heartsuit \
+hebrewAlef hebrewAyin hebrewBet hebrewDalet hebrewGimel \
+hebrewHe hebrewHet hebrewKaf hebrewKaffinal hebrewLamed \
+hebrewMem hebrewMemfinal hebrewNun hebrewNunfinal hebrewPe \
+hebrewPefinal hebrewQof hebrewResh hebrewSamekh hebrewShin \
+hebrewTav hebrewTet hebrewTsadi hebrewTsadifinal hebrewVav \
+hebrewYod hebrewZayin hebrewnumerals heightanddepthofstring heightofstring \
+heightspanningtext helptext hexnumber hexstringtonumber hglue \
+hiddenbar hiddencitation hiddencite hideblocks high \
+highlight highordinalstr hilo himilo hl \
+hom hookleftarrow hookleftarrowint hookleftarrowtext hookrightarrow \
+hookrightarrowtext horizontalgrowingbar horizontalpositionbar hpackbox hpackedbox \
+hphantom hpos hsizefraction hslash hsmash \
+hsmashbox hsmashed hspace hstroke htdpofstring \
+htofstring hyphen hyphenatedcoloredword hyphenatedfile hyphenatedfilename \
+hyphenatedhbox hyphenatedpar hyphenatedurl hyphenatedword iacute \
+ibox ibreve icaron icircumflex ideographichalffillspace \
+ideographicspace idiaeresis idotaccent idotbelow idoublegrave \
+idxfromluatable ifassignment iff ifinobject ifinoutputstream \
+iflua ifparameters iftrialtypesetting ifxml ifxmlatt \
+ifxmlattempty ifxmlempty ifxmlselfempty ifxmltext ignoreimplicitspaces \
+ignoretagsinexport ignorevalue igrave ihook iiiint \
+iiiintegral iiiintop iiint iiintegral iiintop \
+iint iintegral iintop iinvertedbreve ijligature \
+im imacron imaginaryi imaginaryj imath \
+immediatesavetwopassdata impliedby implies impliesby imply \
+in includemenu includesvgbuffer includesvgfile includeversioninfo \
+increment incrementcounter incrementedcounter incrementpagenumber incrementsubpagenumber \
+incrementvalue indentation index inf infofont \
+infofontbold inframed infty infull inheritparameter \
+inhibitblank ininner ininneredge ininnermargin initializeboxstack \
+injlim inleft inleftedge inleftmargin inline \
+inlinebar inlinebuffer inlinedbox inlinemath inlinemathematics \
+inlinemessage inlineordisplaymath inlineprettyprintbuffer inlinerange inmargin \
+inmframed innerflushshapebox inother inouter inouteredge \
+inoutermargin input inputfilebarename inputfilename inputfilerealsuffix \
+inputfilesuffix inputgivenfile inright inrightedge inrightmargin \
+insertblankafter insertblankbefore insertlineafter insertlinebefore insertpages \
 inspectluatable installactionhandler installactivecharacter installanddefineactivecharacter installattributestack \
 installautocommandhandler installautosetuphandler installbasicautosetuphandler installbasicparameterhandler installbottomframerenderer \
 installcommandhandler installcorenamespace installctxfunction installctxscanner installdefinehandler \
@@ -606,115 +637,128 @@
 installprotectedctxfunction installprotectedctxscanner installrightframerenderer installrootparameterhandler installsetuphandler \
 installsetuponlycommandhandler installshipoutmethod installsimplecommandhandler installsimpleframedcommandhandler installstyleandcolorhandler \
 installswitchcommandhandler installswitchsetuphandler installtexdirective installtextracker installtopframerenderer \
-installunitsseparator installunitsspace installversioninfo int intclockwise \
-integerrounding integers interactionbar interactionbuttons interactionmenu \
-intercal intertext interwordspaceafter interwordspacebefore interwordspaces \
-interwordspacesafter interwordspacesbefore intop invisiblecomma invisibleplus \
-invisibletimes invokepagehandler iogonek iota italic \
-italicbold italiccorrection italicface item items \
-itemtag itilde jcaron jcircumflex ji \
-jmath jobfilename jobfilesuffix kap kappa \
-kcaron kcommaaccent keepblocks keeplinestogether keepunwantedspaces \
-kerncharacters khook kkra koreancirclenumerals koreannumerals \
-koreannumeralsc koreannumeralsp koreanparentnumerals lVert labellanguage \
-labeltext labeltexts lacute lambda lambdabar \
-land langle language languageCharacters languagecharacters \
-languagecharwidth laplace lastcounter lastcountervalue lastdigit \
-lastlinewidth lastnaturalboxdp lastnaturalboxht lastnaturalboxwd lastparwrapper \
-lastpredefinedsymbol lastrealpage lastrealpagenumber lastsubcountervalue lastsubpage \
-lastsubpagenumber lasttwodigits lastuserpage lastuserpagenumber lateluacode \
-latin layeredtext layerheight layerwidth lazysavetaggedtwopassdata \
-lazysavetwopassdata lbar lbox lbrace lbracket \
-lcaron lceil lchexnumber lchexnumbers lcommaaccent \
-lcurl ldot ldotmiddle ldotp ldots \
-le leadsto left leftaligned leftarrow \
-leftarrowtail leftarrowtriangle leftbottombox leftbox leftdasharrow \
-leftguillemot leftharpoondown leftharpoonup lefthbox leftheadtext \
-leftlabeltext leftleftarrows leftline leftmathlabeltext leftorrighthbox \
-leftorrightvbox leftorrightvtop leftrightarrow leftrightarrows leftrightarrowtriangle \
-leftrightharpoons leftrightsquigarrow leftskipadaption leftsquigarrow leftsubguillemot \
-leftthreetimes lefttopbox lefttoright lefttorighthbox lefttorightvbox \
-lefttorightvtop leftwavearrow leftwhitearrow leq leqq \
-leqslant lessapprox lessdot lesseqgtr lesseqqgtr \
-lessgtr lesssim letbeundefined letcatcodecommand letcscsname \
-letcsnamecs letcsnamecsname letdummyparameter letempty letgvalue \
-letgvalueempty letgvalurelax letterampersand letterat letterbackslash \
-letterbar letterbgroup letterclosebrace lettercolon letterdollar \
-letterdoublequote letteregroup letterescape letterexclamationmark letterhash \
-letterhat letterleftbrace letterleftbracket letterleftparenthesis letterless \
-lettermore letteropenbrace letterpercent letterquestionmark letterrightbrace \
-letterrightbracket letterrightparenthesis lettersinglequote letterslash letterspacing \
-lettertilde letterunderscore letvalue letvalueempty letvaluerelax \
-lfence lfloor lgroup lhbox lhooknwarrow \
-lhooksearrow limitatefirstline limitatelines limitatetext line \
-linebox linefeed linefillerhbox linefillervbox linefillervtop \
-linenote linespanningtext linethickness linterval listcitation \
-listcite listlength listnamespaces literalmode ljligature \
-ll llangle llap llbracket llcorner \
-lll llless llointerval lmoustache lnapprox \
-lneq lneqq lnot lnsim loadanyfile \
-loadanyfileonce loadbtxdefinitionfile loadbtxreplacementfile loadcldfile loadcldfileonce \
-loadfontgoodies loadluafile loadluafileonce loadspellchecklist loadtexfile \
-loadtexfileonce loadtypescriptfile localframed localframedwithsettings localhsize \
-localpopbox localpopmacro localpushbox localpushmacro localundefine \
-locatedfilepath locatefilepath locfilename logo lohi \
-lointerval lomihi longleftarrow longleftrightarrow longmapsfrom \
-longmapsto longrightarrow longrightsquigarrow looparrowleft looparrowright \
-lor low lowerbox lowercased lowercasestring \
-lowercasing lowerleftdoubleninequote lowerleftsingleninequote lowerrightdoubleninequote lowerrightsingleninequote \
-lozenge lparent lrcorner lrointerval lrtbbox \
+installunitsseparator installunitsspace installversioninfo int intc \
+intclockwise integerinterval integerrounding integers integral \
+interactionbar interactionbuttons interactionmenu intercal interiorset \
+intertext interval interwordspaceafter interwordspacebefore interwordspaces \
+interwordspacesafter interwordspacesbefore intop inv inverse \
+invisiblecomma invisibleplus invisibletimes invokepagehandler iogonek \
+iota italic italicbold italiccorrection italicface \
+item items itemtag itilde jcaron \
+jcircumflex jmath jobfilename jobfilesuffix kap \
+kappa kcaron kcommaaccent keepblocks keeplinestogether \
+keepunwantedspaces ker kerncharacters khook kkra \
+koreancirclenumerals koreannumerals koreannumeralsc koreannumeralsp koreanparentnumerals \
+lVert labellanguage labeltext labeltexts lacute \
+lambda lambdabar land langle language \
+languageCharacters languagecharacters languagecharwidth lannuity laplace \
+lastcounter lastcountervalue lastdigit lastlinewidth lastnaturalboxdp \
+lastnaturalboxht lastnaturalboxwd lastparwrapper lastpredefinedsymbol lastrealpage \
+lastrealpagenumber lastsubcountervalue lastsubpage lastsubpagenumber lasttwodigits \
+lastuserpage lastuserpagenumber lateluacode latin layeredtext \
+layerheight layerwidth lazysavetaggedtwopassdata lazysavetwopassdata lbannuity \
+lbar lbox lbrace lbracket lcaron \
+lceil lchexnumber lchexnumbers lcommaaccent lcurl \
+ldot ldotmiddle ldotp ldots le \
+leadsto left leftaligned leftarrow leftarrowtail \
+leftarrowtext leftarrowtriangle leftbottombox leftbox leftdasharrow \
+leftguillemot leftharpoondown leftharpoondowntext leftharpoonup leftharpoonuptext \
+lefthbox leftheadtext leftlabeltext leftleftarrows leftline \
+leftmathlabeltext leftopeninterval leftorrighthbox leftorrightvbox leftorrightvtop \
+leftouterjoin leftparbox leftrightarrow leftrightarrows leftrightarrowtext \
+leftrightarrowtriangle leftrightharpoons leftrightharpoonstext leftrightsquigarrow leftskipadaption \
+leftsquigarrow leftsubguillemot leftthreetimes lefttopbox lefttoright \
+lefttorighthbox lefttorightvbox lefttorightvtop leftwavearrow leftwhitearrow \
+leq leqq leqslant lequationsystem lessapprox \
+lessdot lesseqgtr lesseqqgtr lessgtr lesssim \
+letbeundefined letcatcodecommand letcscsname letcsnamecs letcsnamecsname \
+letdummyparameter letempty letgvalue letgvalueempty letgvaluerelax \
+letterampersand letterat letterbackslash letterbar letterbgroup \
+letterclosebrace lettercolon letterdollar letterdoublequote letteregroup \
+letterescape letterexclamationmark letterhash letterhat letterhyphen \
+letterleftbrace letterleftbracket letterleftparenthesis letterless lettermore \
+letteropenbrace letterpercent letterquestionmark letterrightbrace letterrightbracket \
+letterrightparenthesis lettersinglequote letterslash letterspacing lettertilde \
+letterunderscore letvalue letvalueempty letvaluerelax lfence \
+lfloor lg lgroup lhbox lhooknwarrow \
+lhooksearrow lim liminf limitatefirstline limitatelines \
+limitatetext limsup line linebox linefeed \
+linefillerhbox linefillervbox linefillervtop linenote linespanningtext \
+linethickness linterval listcitation listcite listlength \
+listnamespaces literalmode ljligature ll llangle \
+llap llbracket llcorner lll llless \
+llointerval lmoustache ln lnapprox lneq \
+lneqq lnot lnsim loadanyfile loadanyfileonce \
+loadbtxdefinitionfile loadbtxreplacementfile loadcldfile loadcldfileonce loadfontgoodies \
+loadluafile loadluafileonce loadspellchecklist loadtexfile loadtexfileonce \
+loadtypescriptfile localbox localframed localframedwithsettings localhsize \
+localmargintext localpopbox localpopmacro localpushbox localpushmacro \
+localundefine locatedfilepath locatefilepath locfilename log \
+logo lohi lointerval lomihi longleftarrow \
+longleftrightarrow longmapsfrom longmapsto longrightarrow longrightsquigarrow \
+looparrowleft looparrowright lor low lowerbox \
+lowercased lowercasestring lowercasing lowerint lowerleftdoubleninequote \
+lowerleftsingleninequote lowerrightdoubleninequote lowerrightsingleninequote lozenge lparent \
+lrannuity lrbannuity lrcorner lrointerval lrtbbox \
 lstroke lt ltimes ltop ltrhbox \
-ltrvbox ltrvtop luaTeX luacode luaconditional \
-luaenvironment luaexpanded luaexpr luafunction luajitTeX \
-luamajorversion luametaTeX luaminorversion luaparameterset luasetup \
-luaversion lvert m mLeftarrow mLeftrightarrow \
-mRightarrow mVert mainlanguage makecharacteractive makerawcommalist \
-makestrutofbox maltese mapfontsize maps mapsas \
-mapsdown mapsfrom mapsto mapsup margindata \
-margintext markcontent markedpages marking markinjector \
-markpage markreferencepage mat math mathDitalicshape \
-mathDuprightshape mathampersand mathbf mathbi mathblackboard \
-mathbs mathdefault mathditalicshape mathdollar mathdouble \
-mathduprightshape mathematics mathfraktur mathfunction mathhash \
-mathhyphen mathit mathitalic mathlabellanguage mathlabeltext \
-mathlabeltexts mathop mathover mathpercent mathrm \
-mathscript mathsl mathss mathtext mathtextbf \
-mathtextbi mathtextbs mathtextit mathtextsl mathtexttf \
-mathtf mathtriplet mathtt mathunder mathupright \
-mathword mathwordbf mathwordbi mathwordbs mathwordit \
-mathwordsl mathwordtf maxaligned mbox mcframed \
-measure measured measuredangle measuredeq medskip \
-medspace menubutton mequal message mfence \
-mframed mfunction mfunctionlabeltext mhbox mho \
-mhookleftarrow mhookrightarrow mid midaligned middle \
-middlealigned middlebox midhbox midsubsentence minimalhbox \
-minus minuscolon mirror mixedcaps mkvibuffer \
-mleftarrow mleftharpoondown mleftharpoonup mleftrightarrow mleftrightharpoons \
-mmapsto models moduleparameter molecule mono \
-monobold mononormal month monthlong monthshort \
-mp mprandomnumber mrel mrightarrow mrightharpoondown \
-mrightharpoonup mrightleftharpoons mrightoverleftarrow mtext mtriplerel \
-mtwoheadleftarrow mtwoheadrightarrow mu multimap mvert \
-nHdownarrow nHuparrow nLeftarrow nLeftrightarrow nRightarrow \
-nVDash nVdash nVleftarrow nVleftrightarrow nVrightarrow \
-nabla nacute namedheadnumber namedstructureheadlocation namedstructureuservariable \
-namedstructurevariable namedtaggedlabeltexts napostrophe napprox napproxEq \
-narrownobreakspace nasymp natural naturalhbox naturalhpack \
-naturalnumbers naturaltpack naturalvbox naturalvcenter naturalvpack \
-naturalvtop naturalwd ncaron ncommaaccent ncong \
-ncurl ndivides ne nearrow negatecolorbox \
-negated negativesign negemspace negenspace negthinspace \
-neng neq nequiv neswarrow newattribute \
-newcatcodetable newcounter newevery newfrenchspacing newluatable \
-newmode newsignal newsystemmode nexists nextbox \
-nextboxdp nextboxht nextboxhtdp nextboxwd nextcounter \
-nextcountervalue nextdepth nextparagraphs nextrealpage nextrealpagenumber \
-nextsubcountervalue nextsubpage nextsubpagenumber nextuserpage nextuserpagenumber \
-ngeq ngrave ngtr ngtrless ngtrsim \
-ni nihongo nin njligature nleftarrow \
-nleftrightarrow nleq nless nlessgtr nlesssim \
-nmid nni nobar nobreakspace nocap \
-nocharacteralign nocitation nocite nodetostring noffigurepages \
+ltrtext ltrvbox ltrvtop luaTeX luacode \
+luaconditional luaenvironment luaexpanded luaexpr luafunction \
+luajitTeX luamajorversion luametaTeX luaminorversion luaparameterset \
+luasetup luaversion lvert m mLeftarrow \
+mLeftrightarrow mRightarrow mVert mainlanguage makecharacteractive \
+makerawcommalist makestrutofbox maltese mapfontsize maps \
+mapsas mapsdown mapsfrom mapsto mapstotext \
+mapsup margindata margintext markcontent markedpages \
+marker marking markinjector markpage markreferencepage \
+mat math mathDitalicshape mathDuprightshape mathampersand \
+mathbackground mathbf mathbi mathblackboard mathbs \
+mathdefault mathdelimiter mathditalicshape mathdollar mathdouble \
+mathduprightshape matheitalicshape mathematics matheuprightshape mathfraktur \
+mathgroupedcommandcs mathhash mathhyphen mathiitalicshape mathit \
+mathitalic mathiuprightshape mathjitalicshape mathjuprightshape mathlabellanguage \
+mathlabeltext mathlabeltexts mathloose mathnesting mathop \
+mathopdolimits mathopnolimits mathover mathovertext mathpercent \
+mathpiitalicshape mathpiuprightshape mathrm mathscript mathsl \
+mathss mathstacker mathtext mathtextbf mathtextbi \
+mathtextbs mathtextit mathtextsl mathtexttf mathtf \
+mathtogether mathtriplet mathtt mathunder mathundertext \
+mathupright mathword mathwordbf mathwordbi mathwordbs \
+mathwordit mathwordsl mathwordtf matrix max \
+maxaligned mbox mcframed measure measured \
+measuredangle measuredeq median medskip medspace \
+menubutton mequal message mfence mframed \
+mfunction mfunctionlabeltext mhbox mho mhookleftarrow \
+mhookrightarrow mid midaligned middle middlealigned \
+middlebox middleparbox midhbox midsubsentence min \
+minimalhbox minus minuscolon mirror mixedcaps \
+mkvibuffer mleftarrow mleftharpoondown mleftharpoonup mleftoverrightarrow \
+mleftrightarrow mleftrightharpoons mmapsto mod models \
+modtwosum moduleparameter molecule mono monobold \
+mononormal month monthlong monthshort mp \
+mplocation mprandomnumber mrel mrightarrow mrightharpoondown \
+mrightharpoonup mrightleftharpoons mrightoverleftarrow mtext mtp \
+mtriplerel mtwoheadleftarrow mtwoheadrightarrow mu multimap \
+mvert nHdownarrow nHuparrow nLeftarrow nLeftrightarrow \
+nRightarrow nVDash nVdash nVleftarrow nVleftrightarrow \
+nVrightarrow nabla nacute namedheadnumber namedstructureheadlocation \
+namedstructureuservariable namedstructurevariable namedtaggedlabeltexts napostrophe napprox \
+napproxEq narrownobreakspace nasymp natural naturalhbox \
+naturalhpack naturalnumbers naturaltpack naturalvbox naturalvcenter \
+naturalvpack naturalvtop naturalwd ncaron ncommaaccent \
+ncong ncurl ndivides ne nearrow \
+neg negatecolorbox negated negativesign negemspace \
+negenspace negthinspace neng neq nequiv \
+neswarrow newattribute newcatcodetable newcounter newevery \
+newfrenchspacing newluatable newmode newrepeatablerandom newsignal \
+newsystemmode nexists nextbox nextboxdp nextboxht \
+nextboxhtdp nextboxwd nextcounter nextcountervalue nextdepth \
+nextparagraphs nextrealpage nextrealpagenumber nextsubcountervalue nextsubpage \
+nextsubpagenumber nextuserpage nextuserpagenumber ngeq ngrave \
+ngtr ngtrless ngtrsim ni nihongo \
+nin njligature nleftarrow nleftrightarrow nleq \
+nless nlessgtr nlesssim nmid nni \
+nobar nobreakspace nocap nocasing nocharacteralign \
+nocitation nocite nodepthstrut nodetostring noffigurepages \
 noflines noflinesinbox noflocalfloats noheaderandfooterlines noheightstrut \
 nohyphens noindentation noitem nonfrenchspacing nonmathematics \
 nonvalidassignment normal normalboldface normalframedwithsettings normalitalicface \
@@ -726,65 +770,72 @@
 nsim nsimeq nsqsubseteq nsqsupseteq nsubset \
 nsubseteq nsucc nsucccurlyeq nsupset nsupseteq \
 ntilde ntimes ntriangleleft ntrianglelefteq ntriangleright \
-ntrianglerighteq nu numberofpoints numbers nvDash \
-nvdash nvleftarrow nvleftrightarrow nvrightarrow nwarrow \
-nwsearrow oacute obeydepth objectdepth objectheight \
-objectmargin objectwidth obox obreve ocaron \
-ocircumflex ocircumflexacute ocircumflexdotbelow ocircumflexgrave ocircumflexhook \
-ocircumflextilde octnumber octstringtonumber odiaeresis odiaeresismacron \
-odot odotaccent odotaccentmacron odotbelow odoublegrave \
-oeligature offset offsetbox ograve ohm \
-ohook ohorn ohornacute ohorndotbelow ohorngrave \
-ohornhook ohorntilde ohungarumlaut oiiint oiint \
-oint ointclockwise ointctrclockwise oinvertedbreve omacron \
-omega omicron ominus onedigitrounding oneeighth \
-onefifth onehalf onequarter onesixth onesuperior \
-onethird oogonek oogonekmacron operatorlanguage operatortext \
-oplus ordfeminine ordinaldaynumber ordinalstr ordmasculine \
-ornamenttext oslash ostroke ostrokeacute otilde \
-otildemacron otimes outputfilename outputstreambox outputstreamcopy \
-outputstreamunvbox outputstreamunvcopy over overbar overbars \
-overbartext overbarunderbar overbrace overbracetext overbraceunderbrace \
-overbracket overbrackettext overbracketunderbracket overlaybutton overlaycolor \
+ntrianglerighteq nu numberhere numberofpoints numbers \
+nvDash nvdash nvleftarrow nvleftrightarrow nvrightarrow \
+nwarrow nwsearrow oacute obeydepth objectdepth \
+objectheight objectmargin objectwidth obox obreve \
+ocaron ocircumflex ocircumflexacute ocircumflexdotbelow ocircumflexgrave \
+ocircumflexhook ocircumflextilde octnumber octstringtonumber odiaeresis \
+odiaeresismacron odot odotaccent odotaccentmacron odotbelow \
+odoublegrave oeligature offset offsetbox ograve \
+ohm ohook ohorn ohornacute ohorndotbelow \
+ohorngrave ohornhook ohorntilde ohungarumlaut oiiint \
+oiint oint ointc ointclockwise ointctrclockwise \
+oinvertedbreve omacron omega omicron ominus \
+onedigitrounding oneeighth onefifth onehalf onequarter \
+onesixth onesuperior onethird oogonek oogonekmacron \
+openinterval operatorlanguage operatortext oplus optimize \
+optionalword ordfeminine ordinaldaynumber ordinalstr ordmasculine \
+ornamenttext orthogonalcomplement orthogonalcomplementsymbol oslash ostroke \
+ostrokeacute otilde otildemacron otimes outline \
+outlined outputfilename outputstreambox outputstreamcopy outputstreamunvbox \
+outputstreamunvcopy over overLeftarrow overLeftbararrow overLeftrightarrow \
+overRightarrow overRightbararrow overbar overbars overbartext \
+overbarunderbar overbrace overbracetext overbraceunderbrace overbracket \
+overbrackettext overbracketunderbracket overhook overlaybutton overlaycolor \
 overlaydepth overlayfigure overlayheight overlayimage overlaylinecolor \
 overlaylinewidth overlayoffset overlayrollbutton overlaywidth overleftarrow \
-overleftharpoondown overleftharpoonup overleftrightarrow overloaderror overparent \
-overparenttext overparentunderparent overrightarrow overrightharpoondown overrightharpoonup \
-overset overstrike overstrikes overtwoheadleftarrow overtwoheadrightarrow \
-owns page pagearea pagebreak pagefigure \
-pageinjection pagenumber pagereference pagestaterealpage pagestaterealpageorder \
-paletsize paragraphmark parallel part partial \
-pdfTeX pdfactualtext pdfbackendactualtext pdfbackendcurrentresources pdfbackendsetcatalog \
-pdfbackendsetcolorspace pdfbackendsetextgstate pdfbackendsetinfo pdfbackendsetname pdfbackendsetpageattribute \
-pdfbackendsetpageresource pdfbackendsetpagesattribute pdfbackendsetpattern pdfbackendsetshade pdfcolor \
-pdfeTeX percent percentdimen periodcentered periods \
-permitcaretescape permitcircumflexescape permitspacesbetweengroups perp persiandecimals \
-persiandecimalseparator persiannumerals persianthousandsseparator perthousand phantom \
-phantombox phi phook pi pickupgroupedcommand \
-pitchfork placeattachments placebookmarks placebtxrendering placechemical \
-placecitation placecombinedlist placecomments placecontent placecurrentformulanumber \
-placedbox placefigure placefloat placefloatcaption placefloatwithsetups \
-placefootnotes placeformula placeframed placegraphic placeheadnumber \
-placeheadtext placehelp placeholder placeindex placeinitial \
-placeintermezzo placelayer placelayeredtext placelegend placelist \
-placelistofabbreviations placelistofchemicals placelistoffigures placelistofgraphics placelistofintermezzi \
-placelistoflogos placelistofpublications placelistofsorts placelistofsynonyms placelistoftables \
-placelocalfootnotes placelocalnotes placement placenamedfloat placenamedformula \
-placenotes placeongrid placeontopofeachother placepagenumber placepairedbox \
-placeparallel placerawheaddata placerawheadnumber placerawheadtext placerawlist \
-placeregister placerenderingwindow placesidebyside placesubformula placetable \
-pm popattribute popmacro popmode popsystemmode \
-position positionoverlay positionregionoverlay positivesign postponenotes \
-prec precapprox preccurlyeq preceq preceqq \
-precnapprox precneq precneqq precnsim precsim \
-predefinedfont predefinefont predefinesymbol prefixedpagenumber prefixlanguage \
-prefixtext prependetoks prependgvalue prependtocommalist prependtoks \
-prependtoksonce prependvalue prerollblank presetbtxlabeltext presetdocument \
-presetfieldsymbols presetheadtext presetlabeltext presetmathlabeltext presetoperatortext \
-presetprefixtext presetsuffixtext presettaglabeltext presetunittext pretocommalist \
-prettyprintbuffer prevcounter prevcountervalue preventmode prevrealpage \
-prevrealpagenumber prevsubcountervalue prevsubpage prevsubpagenumber prevuserpage \
-prevuserpagenumber prime primes procent processMPbuffer \
+overleftbararrow overleftharpoon overleftharpoondown overleftharpoonup overlefthookarrow \
+overleftrightarrow overlefttailarrow overloaderror overparent overparenttext \
+overparentunderparent overrightarrow overrightbararrow overrightharpoon overrightharpoondown \
+overrightharpoonup overrighthookarrow overrighttailarrow overset overstrike \
+overstrikes overtwoheadleftarrow overtwoheadrightarrow owns page \
+pagearea pageblockrealpage pagebreak pagefigure pageinjection \
+pagenumber pagereference pagestaterealpage pagestaterealpageorder paletsize \
+paragraphmark parallel paralleltext parenthesis part \
+partial pdfTeX pdfactualtext pdfbackendactualtext pdfbackendcurrentresources \
+pdfbackendsetcatalog pdfbackendsetcolorspace pdfbackendsetextgstate pdfbackendsetinfo pdfbackendsetname \
+pdfbackendsetpageattribute pdfbackendsetpageresource pdfbackendsetpagesattribute pdfbackendsetpattern pdfbackendsetshade \
+pdfcolor pdfeTeX percent percentdimen periodcentered \
+periodic periods permitcaretescape permitcircumflexescape permitspacesbetweengroups \
+perp persiandecimals persiandecimalseparator persiannumerals persianthousandsseparator \
+perthousand phantom phantombox phi phook \
+pickupgroupedcommand pickupgroupedcommandcs pitchfork placeattachments placebookmarks \
+placebtxrendering placechemical placecitation placecombinedlist placecomments \
+placecontent placecurrentformulanumber placedbox placefigure placefloat \
+placefloatcaption placefloatplaceholder placefloatwithsetups placefootnotes placeformula \
+placeframed placegraphic placeheadnumber placeheadtext placehelp \
+placeholder placeindex placeinitial placeintermezzo placelayer \
+placelayeredtext placelegend placelist placelistofabbreviations placelistofchemicals \
+placelistoffigures placelistofgraphics placelistofintermezzi placelistoflogos placelistofpublications \
+placelistofsorts placelistofsynonyms placelistoftables placelocalfootnotes placelocalnotes \
+placement placenamedfloat placenamedformula placenotes placeongrid \
+placeontopofeachother placepagenumber placepairedbox placeparallel placerawheaddata \
+placerawheadnumber placerawheadtext placerawlist placeregister placerenderingwindow \
+placesavedfloat placesidebyside placesubformula placesynchronize placetable \
+pm pmatrix popattribute popmacro popmode \
+popsystemmode position positionoverlay positionregionoverlay positivesign \
+postponenotes prec precapprox preccurlyeq preceq \
+preceqq precnapprox precneq precneqq precnsim \
+precsim predefinedfont predefinefont predefinesymbol prefixedpagenumber \
+prefixlanguage prefixtext preimage prependetoks prependgvalue \
+prependhiddenbackground prependtocommalist prependtoks prependtoksonce prependvalue \
+prerollblank prerolledpages presetbtxlabeltext presetdocument presetfieldsymbols \
+presetheadtext presetlabeltext presetmathlabeltext presetoperatortext presetprefixtext \
+presetsuffixtext presettaglabeltext presetunittext pretocommalist prettyprintbuffer \
+prevcounter prevcountervalue preventmode prevrealpage prevrealpagenumber \
+prevsubcountervalue prevsubpage prevsubpagenumber prevuserpage prevuserpagenumber \
+prime primed primes procent processMPbuffer \
 processMPfigurefile processaction processallactionsinset processassignlist processassignmentcommand \
 processassignmentlist processbetween processblocks processbodyfontenvironmentlist processcolorcomponents \
 processcommacommand processcommalist processcommalistwithparameters processcontent processfile \
@@ -791,173 +842,190 @@
 processfilemany processfilenone processfileonce processfirstactioninset processisolatedchars \
 processisolatedwords processlinetablebuffer processlinetablefile processlist processmonth \
 processranges processseparatedlist processtexbuffer processtokens processuntil \
-processxtablebuffer processyear prod product profiledbox \
-profilegivenbox program project propto pseudoMixedCapped \
-pseudoSmallCapped pseudoSmallcapped pseudosmallcapped psi punctuationspace \
-purenumber pushattribute pushbutton pushmacro pushmode \
-pushoutputstream pushsystemmode putboxincache putnextboxincache qquad \
-quad quadrupleprime quads quarterstrut questiondown \
-questionedeq quitcommalist quitprevcommalist quittypescriptscanning quotation \
-quote quotedbl quotedblbase quotedblleft quotedblright \
-quoteleft quoteright quotesingle quotesinglebase rVert \
-racute raggedbottom raggedcenter raggedleft raggedright \
-raggedwidecenter raisebox randomizetext randomnumber rangle \
+processxmlbuffer processxmlfile processxtablebuffer processyear prod \
+product profiledbox profilegivenbox program project \
+projlim propto pseudoMixedCapped pseudoSmallCapped pseudoSmallcapped \
+pseudosmallcapped psi punctuationspace purenumber pushattribute \
+pushbutton pushmacro pushmode pushoutputstream pushsystemmode \
+putboxincache putnextboxincache qquad quad quadrupleprime \
+quadrupleprimed quads quarterstrut questiondown questionedeq \
+quitcommalist quitprevcommalist quittypescriptscanning quotation quote \
+quotedbl quotedblbase quotedblleft quotedblright quoteleft \
+quoteright quotesingle quotesinglebase rVert racute \
+raggedbottom raggedcenter raggedleft raggedright raggedwidecenter \
+raisebox randomizetext randomnumber rangle rannuity \
 rationals rawcounter rawcountervalue rawdate rawdoifelseinset \
-rawdoifinset rawdoifinsetelse rawgetparameters rawprocessaction rawprocesscommacommand \
-rawprocesscommalist rawstructurelistuservariable rawsubcountervalue rbox rbrace \
-rbracket rcaron rceil rcommaaccent rdoublegrave \
-readfile readfixfile readjobfile readlocfile readsetfile \
-readsysfile readtexfile readxmlfile realSmallCapped realSmallcapped \
-realpagenumber reals realsmallcapped recursedepth recurselevel \
-recursestring redoconvertfont ref reference referencecolumnnumber \
-referencepagedetail referencepagestate referenceprefix referencerealpage referencesymbol \
-referring registerattachment registerctxluafile registered registerexternalfigure \
-registerfontclass registerhyphenationexception registerhyphenationpattern registermenubuttons registerparwrapper \
-registerparwrapperreverse registersort registersynonym registerunit regular \
-relatemarking relateparameterhandlers relaxvalueifundefined relbar remainingcharacters \
+rawdoifinset rawdoifinsetelse rawgetparameters rawmathematics rawparagraphshape \
+rawprocessaction rawprocesscommacommand rawprocesscommalist rawstructurelistuservariable rawsubcountervalue \
+rbannuity rbox rbrace rbracket rcaron \
+rceil rcommaaccent rdoublegrave readfile readfixfile \
+readjobfile readlocfile readsetfile readsysfile readtexfile \
+readxmlfile realSmallCapped realSmallcapped realpagenumber reals \
+realsmallcapped rectangularpoleintc recursedepth recurselevel recursestring \
+redoconvertfont ref reference referencecolumnnumber referencepagedetail \
+referencepagestate referenceprefix referencerealpage referencesymbol referring \
+registerattachment registerctxluafile registered registerexternalfigure registerfontclass \
+registerhyphenationexception registerhyphenationpattern registermenubuttons registeroverloads registerparwrapper \
+registerparwrapperreverse registersort registersortpage registersynonym registertopcontent \
+registerunit registerunitshortcut regular relatemarking relateparameterhandlers \
+relaxvalueifundefined relbar relfraction reltext remainingcharacters \
 remark removebottomthings removedepth removefromcommalist removelastskip \
 removelastspace removemarkedcontent removepunctuation removesubstring removetoks \
 removeunwantedspaces repeathead replacefeature replaceincommalist replaceword \
-rescan rescanwithsetup resetMPdrawing resetMPenvironment resetMPinstance \
-resetallattributes resetandaddfeature resetbar resetboxesincache resetbreakpoints \
-resetbuffer resetcharacteralign resetcharacterkerning resetcharacterspacing resetcharacterstripping \
-resetcollector resetcounter resetctxscanner resetdigitsmanipulation resetdirection \
-resetfeature resetflag resetfontcolorsheme resetfontfallback resetfontsolution \
-resethyphenationfeatures resetinjector resetinteractionmenu resetitaliccorrection resetlayer \
-resetlocalfloats resetmarker resetmarking resetmode resetpagenumber \
+requationsystem rescan rescanwithsetup resetMPdrawing resetMPenvironment \
+resetMPinstance resetalignmentcharacter resetallattributes resetalternate resetandaddfeature \
+resetbar resetboxesincache resetbreakpoints resetbuffer resetcharacteralign \
+resetcharacterkerning resetcharacterspacing resetcharacterstripping resetcollector resetcounter \
+resetctxscanner resetdigitsmanipulation resetdirection resetextrafontkerns resetfeature \
+resetflag resetfontcolorscheme resetfontfallback resetfontsolution resethyphenationfeatures \
+resetinjector resetinteractionmenu resetitaliccorrection resetlayer resetlineprofile \
+resetlistsynonyms resetlocalbox resetlocalfloats resetlocalshowmakeup resetmacros \
+resetmarker resetmarking resetmode resetoverloads resetpagenumber \
 resetparallel resetpath resetpenalties resetperiodkerning resetprofile \
 resetrecurselevel resetreference resetreplacements resetscript resetsetups \
-resetshownsynonyms resetsubpagenumber resetsymbolset resetsystemmode resettimer \
-resettokenlist resettrackers resettrialtypesetting resetusedsortings resetusedsynonyms \
-resetuserpagenumber resetvalue resetvisualizers reshapebox resolvedglyphdirect \
-resolvedglyphstyled restartcounter restorebox restorecatcodes restorecounter \
-restorecurrentattributes restoreendofline restoreglobalbodyfont restriction retestfeature \
-reusableMPgraphic reuseMPgraphic reuserandomseed reverseddoubleprime reversedprime \
-reversedtripleprime reversehbox reversehpack reversetpack reversevbox \
-reversevboxcontent reversevpack reversevtop revivefeature rfence \
-rfloor rgroup rhbox rho rhooknearrow \
-rhookswarrow right rightaligned rightangle rightarrow \
-rightarrowbar rightarrowtail rightarrowtriangle rightbottombox rightbox \
-rightdasharrow rightguillemot rightharpoondown rightharpoonup righthbox \
-rightheadtext rightlabeltext rightleftarrows rightleftharpoons rightline \
-rightmathlabeltext rightorleftpageaction rightpageorder rightrightarrows rightskipadaption \
-rightsquigarrow rightsubguillemot rightthreearrows rightthreetimes righttoleft \
-righttolefthbox righttoleftvbox righttoleftvtop righttopbox rightwavearrow \
-rightwhitearrow ring rinterval rinvertedbreve risingdotseq \
-rlap rlointerval rmoustache rneq robustaddtocommalist \
-robustdoifelseinset robustdoifinsetelse robustpretocommalist rointerval rollbutton \
-roman romanC romanD romanI romanII \
-romanIII romanIV romanIX romanL romanM \
-romanV romanVI romanVII romanVIII romanX \
-romanXI romanXII romanc romand romani \
-romanii romaniii romaniv romanix romanl \
-romanm romannumerals romanv romanvi romanvii \
-romanviii romanx romanxi romanxii rootradical \
-rotate rparent rrangle rrbracket rrointerval \
-rtimes rtlhbox rtlvbox rtlvtop rtop \
-ruby ruledhbox ruledhpack ruledmbox ruledtopv \
-ruledtpack ruledvbox ruledvpack ruledvtop runMPbuffer \
-runninghbox russianNumerals russiannumerals rvert sacute \
-safechar samplefile sans sansbold sansnormal \
-sansserif savebox savebtxdataset savebuffer savecounter \
-savecurrentattributes savenormalmeaning savetaggedtwopassdata savetwopassdata sbox \
+resetshownsynonyms resetsubpagenumber resetsymbolset resetsynchronizemarking resetsynonyms \
+resetsynonymsprogress resetsystemmode resettimer resettokenlist resettrackers \
+resettrialtypesetting resetusedsortings resetusedsynonyms resetuserpagenumber resetvalue \
+resetvisualizers reshapebox resolvedglyphdirect resolvedglyphstyled restartcounter \
+restorebox restorecatcodes restorecounter restorecurrentattributes restoreendofline \
+restoreglobalbodyfont restriction retestfeature reusableMPgraphic reuseMPgraphic \
+reuserandomseed reverseddoubleprime reversedprime reversedtripleprime reversehbox \
+reversehpack reverseprimed reversetpack reversevbox reversevboxcontent \
+reversevpack reversevtop revivefeature rfence rfloor \
+rgroup rhbox rho rhooknearrow rhookswarrow \
+right rightaligned rightangle rightarrow rightarrowbar \
+rightarrowtail rightarrowtext rightarrowtriangle rightbottombox rightbox \
+rightdasharrow rightguillemot rightharpoondown rightharpoondowntext rightharpoonup \
+rightharpoonuptext righthbox rightheadtext rightlabeltext rightleftarrows \
+rightleftarrowtext rightleftharpoons rightleftharpoonstext rightline rightmathlabeltext \
+rightopeninterval rightorleftpageaction rightouterjoin rightoverleftarrowtext rightpageorder \
+rightparbox rightrightarrows rightskipadaption rightsquigarrow rightsubguillemot \
+rightthreearrows rightthreetimes righttoleft righttolefthbox righttoleftvbox \
+righttoleftvtop righttopbox rightwavearrow rightwhitearrow ring \
+ringmarked rinterval rinvertedbreve risingdotseq rlannuity \
+rlap rlbannuity rlointerval rmoustache rneq \
+robustaddtocommalist robustdoifelseinset robustdoifinsetelse robustpretocommalist rointerval \
+rollbutton roman romanC romanD romanI \
+romanII romanIII romanIV romanIX romanL \
+romanM romanV romanVI romanVII romanVIII \
+romanX romanXI romanXII romanc romand \
+romani romanii romaniii romaniv romanix \
+romanl romanm romannumerals romanv romanvi \
+romanvii romanviii romanx romanxi romanxii \
+root rootradical rotate rparent rrangle \
+rrbracket rrointerval rtimes rtlhbox rtltext \
+rtlvbox rtlvtop rtop ruby ruleddbox \
+ruleddpack ruledhbox ruledhpack ruledmbox ruledtpack \
+ruledvbox ruledvpack ruledvtop runMPbuffer runninghbox \
+russianNumerals russiannumerals rvert sacute safechar \
+samplefile sans sansbold sansnormal sansserif \
+savebox savebtxdataset savebuffer savecounter savecurrentattributes \
+savemathexport savenormalmeaning savetaggedtwopassdata savetwopassdata sbox \
 scalarproduct scale scaron scedilla schwa \
 schwahook scircumflex scommaaccent screen searrow \
-secondderivativesymbol secondoffivearguments secondoffourarguments secondofsixarguments secondofthreearguments \
-secondofthreeunexpanded secondoftwoarguments secondoftwounexpanded section sectionmark \
-seeindex select selectblocks serializecommalist serializedcommalist \
-serif serifbold serifnormal setJSpreamble setMPlayer \
-setMPpositiongraphic setMPpositiongraphicrange setMPtext setMPvariable setMPvariables \
-setautopagestaterealpageno setbar setbigbodyfont setboxllx setboxlly \
-setbreakpoints setcapstrut setcatcodetable setcharacteralign setcharacteraligndetail \
-setcharactercasing setcharactercleaning setcharacterkerning setcharacterspacing setcharacterstripping \
-setcharstrut setcollector setcolormodell setcounter setcounterown \
-setctxluafunction setcurrentfontclass setdataset setdatavalue setdefaultpenalties \
-setdigitsmanipulation setdirection setdocumentargument setdocumentargumentdefault setdocumentfilename \
-setdummyparameter setelementexporttag setemeasure setevalue setevariable \
-setevariables setexpansion setfirstline setfirstpasscharacteralign setflag \
-setfont setfontcolorsheme setfontfeature setfontsolution setfontstrut \
-setfractions setglobalscript setgmeasure setgvalue setgvariable \
-setgvariables sethboxregister sethyphenatedurlafter sethyphenatedurlbefore sethyphenatedurlnormal \
-sethyphenationfeatures setinitial setinjector setinteraction setinterfacecommand \
-setinterfaceconstant setinterfaceelement setinterfacemessage setinterfacevariable setinternalrendering \
-setitaliccorrection setlayer setlayerframed setlayertext setlinefiller \
-setlocalhsize setlocalscript setluatable setmainbodyfont setmainparbuilder \
-setmarker setmarking setmathstyle setmeasure setmessagetext \
-setminus setmode setnostrut setnote setnotetext \
-setobject setoldstyle setpagereference setpagestate setpagestaterealpageno \
-setparagraphfreezing setpenalties setpercentdimen setperiodkerning setposition \
-setpositionbox setpositiondata setpositiondataplus setpositiononly setpositionplus \
-setpositionstrut setprofile setrandomseed setreference setreferencedobject \
-setregisterentry setreplacements setrigidcolumnbalance setrigidcolumnhsize setscript \
-setsecondpasscharacteralign setsectionblock setsimplecolumnshsize setsmallbodyfont setsmallcaps \
-setstackbox setstructurepageregister setstrut setsuperiors setsystemmode \
-settabular settaggedmetadata settestcrlf settextcontent settightobject \
-settightreferencedobject settightstrut settightunreferencedobject settokenlist settrialtypesetting \
-setuevalue setugvalue setunreferencedobject setup setupMPgraphics \
-setupMPinstance setupMPpage setupMPvariables setupTABLE setupTEXpage \
-setupalign setupalternativestyles setuparranging setupattachment setupattachments \
-setupbackend setupbackground setupbackgrounds setupbar setupbars \
-setupblackrules setupblank setupbleeding setupblock setupbodyfont \
-setupbodyfontenvironment setupbookmark setupbottom setupbottomtexts setupbtx \
-setupbtxdataset setupbtxlabeltext setupbtxlist setupbtxregister setupbtxrendering \
-setupbuffer setupbutton setupcapitals setupcaption setupcaptions \
-setupcharacteralign setupcharacterkerning setupcharacterspacing setupchemical setupchemicalframed \
-setupclipping setupcollector setupcolor setupcolors setupcolumns \
-setupcolumnset setupcolumnsetarea setupcolumnsetareatext setupcolumnsetlines setupcolumnsetspan \
-setupcolumnsetstart setupcombination setupcombinedlist setupcomment setupcontent \
-setupcounter setupdataset setupdelimitedtext setupdescription setupdescriptions \
-setupdirections setupdocument setupeffect setupenumeration setupenumerations \
-setupenv setupexpansion setupexport setupexternalfigure setupexternalfigures \
-setupexternalsoundtracks setupfacingfloat setupfield setupfieldbody setupfieldcategory \
-setupfieldcontentframed setupfieldlabelframed setupfields setupfieldtotalframed setupfiller \
-setupfillinlines setupfillinrules setupfirstline setupfittingpage setupfloat \
-setupfloatframed setupfloats setupfloatsplitting setupfontexpansion setupfontprotrusion \
-setupfonts setupfontsolution setupfooter setupfootertexts setupfootnotes \
-setupforms setupformula setupformulae setupformulaframed setupframed \
-setupframedcontent setupframedtable setupframedtablecolumn setupframedtablerow setupframedtext \
-setupframedtexts setupglobalreferenceprefix setuphead setupheadalternative setupheader \
-setupheadertexts setupheadnumber setupheads setupheadtext setuphelp \
-setuphigh setuphighlight setuphyphenation setuphyphenmark setupindentedtext \
-setupindenting setupindex setupinitial setupinsertion setupinteraction \
-setupinteractionbar setupinteractionmenu setupinteractionscreen setupinterlinespace setupitaliccorrection \
-setupitemgroup setupitemizations setupitemize setupitems setuplabel \
-setuplabeltext setuplanguage setuplayer setuplayeredtext setuplayout \
-setuplayouttext setuplegend setuplinefiller setuplinefillers setuplinenote \
-setuplinenumbering setuplines setuplinetable setuplinewidth setuplist \
-setuplistalternative setuplistextra setuplocalfloats setuplocalinterlinespace setuplow \
+sec secondderivative secondderivativesymbol secondoffivearguments secondoffourarguments \
+secondofsixarguments secondofthreearguments secondofthreeunexpanded secondoftwoarguments secondoftwounexpanded \
+section sectionmark seeindex select selectblocks \
+semicirclepoleintc serializecommalist serializedcommalist serif serifbold \
+serifnormal setJSpreamble setMPlayer setMPpositiongraphic setMPpositiongraphicrange \
+setMPtext setMPvariable setMPvariables setalignmentcharacter setalignmentswitch \
+setalternate setautopagestaterealpageno setbar setbigbodyfont setboxllx \
+setboxlly setbreakpoints setcapstrut setcatcodetable setcharacteralign \
+setcharacteraligndetail setcharactercasing setcharactercleaning setcharacterkerning setcharacterspacing \
+setcharacterstripping setcharstrut setcollector setcolormodel setcounter \
+setcounterown setctxluafunction setcurrentfontclass setdataset setdatavalue \
+setdefaultpenalties setdigitsmanipulation setdirection setdocumentargument setdocumentargumentdefault \
+setdocumentfilename setdummyparameter setelementbackendtag setelementexporttag setelementnature \
+setemeasure setevalue setevariable setevariables setexpansion \
+setextrafontkerns setfirstline setfirstpasscharacteralign setflag setfont \
+setfontcolorscheme setfontfeature setfontsolution setfontstrut setfractions \
+setglobalscript setgmeasure setgvalue setgvariable setgvariables \
+sethboxregister sethyphenatedurlafter sethyphenatedurlbefore sethyphenatedurlnormal sethyphenationfeatures \
+setinitial setinjector setinteraction setinterfacecommand setinterfaceconstant \
+setinterfaceelement setinterfacemessage setinterfacevariable setinternalrendering setitaliccorrection \
+setlayer setlayerframed setlayertext setlinefiller setlineprofile \
+setlocalhsize setlocalscript setlocalshowmakeup setluatable setmainbodyfont \
+setmainlineprofile setmainparbuilder setmarker setmarking setmathmatrixanchoring \
+setmathstyle setmeasure setmessagetext setminus setmode \
+setnostrut setnote setnotetext setobject setoldstyle \
+setoverloads setpagelooseness setpagereference setpagestate setpagestaterealpageno \
+setparagraphfreezing setparagraphshape setpenalties setpercentdimen setperiodkerning \
+setposition setpositionbox setpositiondata setpositiondataplus setpositiononly \
+setpositionplus setpositionstrut setprofile setrandomseed setreference \
+setreferencedobject setregisterentry setreplacements setrigidcolumnbalance setrigidcolumnhsize \
+setscript setsecondpasscharacteralign setsectionblock setsimplecolumnshsize setsmallbodyfont \
+setsmallcaps setstackbox setstructurepageregister setstrut setsuperiors \
+setsystemmode settabular settaggedmetadata settestcrlf settextcontent \
+settightobject settightreferencedobject settightstrut settightunreferencedobject settokenlist \
+settrialtypesetting setuevalue setugvalue setunreferencedobject setup \
+setupMPgraphics setupMPinstance setupMPpage setupMPvariables setupTABLE \
+setupTEXpage setupadaptive setupalign setupalignpass setupalternativestyles \
+setuparranging setupattachment setupattachments setupbackend setupbackground \
+setupbackgrounds setupbar setupbars setupblackrules setupblank \
+setupbleeding setupblock setupbodyfont setupbodyfontenvironment setupbookmark \
+setupbottom setupbottomtexts setupboxexport setupbtx setupbtxdataset \
+setupbtxlabeltext setupbtxlist setupbtxregister setupbtxrendering setupbuffer \
+setupbutton setupcapitals setupcaption setupcaptions setupcharacteralign \
+setupcharacterkerning setupcharacterspacing setupchemical setupchemicalframed setupclipping \
+setupcollector setupcolor setupcolors setupcolumns setupcolumnset \
+setupcolumnsetarea setupcolumnsetareatext setupcolumnsetlines setupcolumnsetspan setupcolumnsetstart \
+setupcombination setupcombinedlist setupcomment setupcontent setupcounter \
+setupdataset setupdelimitedtext setupdescription setupdescriptions setupdirections \
+setupdocument setupeffect setupenumeration setupenumerations setupenv \
+setupexpansion setupexport setupexternalfigure setupexternalfigures setupfacingfloat \
+setupfield setupfieldbody setupfieldcategory setupfieldcontentframed setupfieldlabelframed \
+setupfields setupfieldtotalframed setupfiller setupfillinlines setupfillinrules \
+setupfirstline setupfittingpage setupfloat setupfloatframed setupfloats \
+setupfloatsplitting setupfontexpansion setupfontprotrusion setupfonts setupfontsolution \
+setupfooter setupfootertexts setupfootnotes setupforms setupformula \
+setupformulae setupformulaframed setupframed setupframedcontent setupframedtable \
+setupframedtablecolumn setupframedtablerow setupframedtext setupframedtexts setupglobalreferenceprefix \
+setuphead setupheadalternative setupheader setupheadertexts setupheadnumber \
+setupheads setupheadtext setuphelp setuphigh setuphighlight \
+setuphyphenation setuphyphenmark setupindentedtext setupindenting setupindex \
+setupinitial setupinsertion setupinteraction setupinteractionbar setupinteractionmenu \
+setupinteractionscreen setupinterlinespace setupitaliccorrection setupitemgroup setupitemizations \
+setupitemize setupitems setuplabel setuplabeltext setuplanguage \
+setuplayer setuplayeredtext setuplayout setuplayouttext setuplegend \
+setuplinefiller setuplinefillers setuplinenote setuplinenumbering setuplineprofile \
+setuplines setuplinetable setuplinewidth setuplist setuplistalternative \
+setuplistextra setuplocalboxes setuplocalfloats setuplocalinterlinespace setuplow \
 setuplowhigh setuplowmidhigh setupmakeup setupmarginblock setupmargindata \
-setupmarginframed setupmarginrule setupmarginrules setupmarking setupmathalignment \
-setupmathcases setupmathematics setupmathfence setupmathfraction setupmathfractions \
-setupmathframed setupmathlabeltext setupmathmatrix setupmathornament setupmathradical \
-setupmathstackers setupmathstyle setupmixedcolumns setupmodule setupmulticolumns \
-setupnarrower setupnotation setupnotations setupnote setupnotes \
-setupoffset setupoffsetbox setupoperatortext setupoppositeplacing setuporientation \
-setupoutput setupoutputroutine setuppagechecker setuppagecolumns setuppagecomment \
-setuppageinjection setuppageinjectionalternative setuppagenumber setuppagenumbering setuppageshift \
-setuppagestate setuppagetransitions setuppairedbox setuppalet setuppaper \
-setuppapersize setupparagraph setupparagraphintro setupparagraphnumbering setupparagraphs \
-setupparallel setupperiodkerning setupperiods setupplaceholder setupplacement \
-setuppositionbar setuppositioning setupprefixtext setupprocessor setupprofile \
-setupprograms setupquotation setupquote setuprealpagenumber setupreferenceformat \
-setupreferenceprefix setupreferencestructureprefix setupreferencing setupregister setupregisters \
-setuprenderingwindow setuprotate setupruby setups setupscale \
-setupscript setupscripts setupsectionblock setupselector setupshift \
-setupsidebar setupsorting setupspacing setupspellchecking setupstartstop \
+setupmarginframed setupmarginrule setupmarginrules setupmarking setupmathaccent \
+setupmathaccents setupmathalignment setupmathcases setupmathdelimited setupmathdelimiter \
+setupmathematics setupmathexport setupmathfence setupmathfences setupmathfraction \
+setupmathfractions setupmathframed setupmathfunction setupmathfunctions setupmathlabeltext \
+setupmathmatrix setupmathnesting setupmathoperator setupmathoperators setupmathornament \
+setupmathradical setupmathsimplealign setupmathstackers setupmathstyle setupmixedcolumns \
+setupmodule setupmulticolumns setupnarrower setupnotation setupnotations \
+setupnote setupnotes setupoffset setupoffsetbox setupoperatortext \
+setupoppositeplacing setupoptimize setuporientation setupoutput setupoutputroutine \
+setuppagechecker setuppagecolumns setuppagecomment setuppageinjection setuppageinjectionalternative \
+setuppagenumber setuppagenumbering setuppageshift setuppagestate setuppagetransitions \
+setuppairedbox setuppalet setuppaper setuppapersize setupparagraph \
+setupparagraphintro setupparagraphnumbering setupparagraphs setupparallel setupperiodkerning \
+setupperiods setupplaceholder setupplacement setuppositionbar setuppositioning \
+setupprefixtext setupprocessor setupprofile setupprograms setupquotation \
+setupquote setuprealpagenumber setupreferenceformat setupreferenceprefix setupreferencestructureprefix \
+setupreferencing setupregister setupregisters setuprenderingwindow setuprotate \
+setupruby setups setupscale setupscript setupscripts \
+setupsectionblock setupselector setupshapedparagraph setupshift setupsidebar \
+setupsorting setupspacing setupspellchecking setupstacking setupstartstop \
 setupstretched setupstrut setupstyle setupsubformula setupsubformulas \
-setupsubpagenumber setupsuffixtext setupsymbols setupsymbolset setupsynctex \
-setupsynonyms setupsystem setuptables setuptabulate setuptagging \
-setuptaglabeltext setuptext setuptextbackground setuptextflow setuptextnote \
-setuptextrules setuptexttexts setupthinrules setuptolerance setuptooltip \
-setuptop setuptoptexts setuptype setuptyping setupunit \
-setupunittext setupurl setupuserdata setupuserdataalternative setupuserpagenumber \
-setupversion setupviewerlayer setupvspacing setupwhitespace setupwithargument \
-setupwithargumentswapped setupxml setupxtable setuvalue setuxvalue \
-setvalue setvariable setvariables setvboxregister setvisualizerfont \
-setvtopregister setwidthof setxmeasure setxvalue setxvariable \
-setxvariables seveneighths sfrac shapedhbox sharp \
-shiftbox shiftdown shiftup showallmakeup showattributes \
-showbodyfont showbodyfontenvironment showboxes showbtxdatasetauthors showbtxdatasetcompleteness \
+setupsubpagenumber setupsuffixtext setupsymbols setupsymbolset setupsynchronize \
+setupsynchronizecontent setupsynctex setupsynonyms setupsystem setuptables \
+setuptabulate setuptabulatemove setuptagging setuptaglabeltext setuptext \
+setuptextbackground setuptextdisplay setuptextflow setuptextnote setuptextrules \
+setuptexttexts setupthinrules setuptolerance setuptooltip setuptop \
+setuptoptexts setuptype setuptyping setupunit setupunittext \
+setupurl setupuserdata setupuserdataalternative setupuserpagenumber setupversion \
+setupviewerlayer setupvspacing setupwhitespace setupwithargument setupwithargumentswapped \
+setupxml setupxtable setuvalue setuxvalue setvalue \
+setvariable setvariables setvboxregister setvisualizerfont setvtopregister \
+setwidthof setxmeasure setxvalue setxvariable setxvariables \
+seveneighths sfrac shapedhbox sharp shiftbox \
+shiftdown shiftup showallmakeup showattributes showbodyfont \
+showbodyfontenvironment showboxes showbreakpoints showbtxdatasetauthors showbtxdatasetcompleteness \
 showbtxdatasetfields showbtxfields showbtxhashedauthors showbtxtables showchardata \
 showcharratio showcolor showcolorbar showcolorcomponents showcolorgroup \
 showcolorset showcolorstruts showcounter showdirectives showdirsinmargin \
@@ -967,22 +1035,24 @@
 showhelp showhyphenationtrace showhyphens showinjector showjustification \
 showkerning showlayout showlayoutcomponents showligature showligatures \
 showlogcategories showluatables showmakeup showmargins showmessage \
-showminimalbaseline shownextbox showotfcomposition showpalet showparentchain \
-showparwrapperstate showprint showsetups showsetupsdefinition showstruts \
-showsymbolset showtimer showtokens showtrackers showvalue \
-showvariable showwarning sigma signalrightpage sim \
-simeq simplealignedbox simplealignedboxplus simplealignedspreadbox simplegroupedcommand \
-simplereversealignedbox simplereversealignedboxplus singalcharacteralign singlebond singleverticalbar \
-sixperemspace sixthofsixarguments slanted slantedbold slantedface \
-slash slicepages slong slovenianNumerals sloveniannumerals \
-small smallbodyfont smallbold smallbolditalic smallboldslanted \
-smallcappedcharacters smallcappedromannumerals smallcaps smaller smallitalicbold \
-smallnormal smallskip smallslanted smallslantedbold smalltype \
-smash smashbox smashboxed smashedhbox smashedvbox \
-smile snaptogrid softhyphen solidus someheadnumber \
-somekindoftab someline somelocalfloat somenamedheadnumber someplace \
-somewhere space spaceddigits spaceddigitsmethod spaceddigitsseparator \
-spaceddigitssymbol spadesuit spanishNumerals spanishnumerals speech \
+showminimalbaseline shownextbox showotfcomposition showpageprogress showpalet \
+showparentchain showparwrapperstate showprint showrivers showsetups \
+showsetupsdefinition showstruts showsymbolset showtimer showtokens \
+showtrackers showvalue showvariable showwarning sigma \
+signalcharacteralign signalrightpage sim simeq similartokens \
+simplealignedbox simplealignedboxplus simplealignedspreadbox simplegroupedcommand simplegroupedcommandcs \
+simplereversealignedbox simplereversealignedboxplus sin singlebond singleverticalbar \
+sinh sixperemspace sixthofsixarguments skiphere slanted \
+slantedbold slantedface slash slashed slashint \
+slicepages slong slovenianNumerals sloveniannumerals small \
+smallbodyfont smallbold smallbolditalic smallboldslanted smallcappedcharacters \
+smallcappedromannumerals smallcaps smaller smallitalicbold smallnormal \
+smallskip smallslanted smallslantedbold smalltype smash \
+smashbox smashboxed smashedhbox smashedvbox smile \
+snaptogrid softhyphen solidus someheadnumber somekindoftab \
+someline somelocalfloat somenamedheadnumber someplace somewhere \
+space spaceddigits spaceddigitsmethod spaceddigitsseparator spaceddigitssymbol \
+spaceorpar spadesuit spanishNumerals spanishnumerals speech \
 sphericalangle splitatasterisk splitatcolon splitatcolons splitatcomma \
 splitatperiod splitdfrac splitfilename splitfloat splitfrac \
 splitoffbase splitofffull splitoffkind splitoffname splitoffpath \
@@ -989,169 +1059,206 @@
 splitoffroot splitofftokens splitofftype splitstring spreadhbox \
 sqcap sqcup sqrt sqsubset sqsubseteq \
 sqsubsetneq sqsupset sqsupseteq sqsupsetneq square \
-squaredots ssharp stackrel stackscripts star \
-stareq startJScode startJSpreamble startLUA startMP \
-startMPclip startMPcode startMPdefinitions startMPdrawing startMPenvironment \
-startMPextensions startMPinclusions startMPinitializations startMPpage startMPpositiongraphic \
-startMPpositionmethod startMPrun startPARSEDXML startTABLE startTABLEbody \
-startTABLEfoot startTABLEhead startTABLEnested startTABLEnext startTC \
-startTD startTDs startTEX startTEXpage startTH \
-startTN startTR startTRs startTX startTY \
-startXML startalign startalignment startallmodes startappendices \
-startarrangedpages startasciimode startaside startattachment startbackground \
-startbackmatter startbar startbbordermatrix startbitmapimage startblockquote \
-startbodymatter startbordermatrix startboxedcolumns startbtxlabeltext startbtxrenderingdefinitions \
-startbuffer startcases startcatcodetable startcenteraligned startchapter \
-startcharacteralign startcheckedfences startchemical startchemicaltext startcollect \
-startcollecting startcolor startcolorintent startcoloronly startcolorset \
-startcolumns startcolumnset startcolumnsetspan startcombination startcomment \
-startcomponent startcontextcode startcontextdefinitioncode startctxfunction startctxfunctiondefinition \
-startcurrentcolor startcurrentlistentrywrapper startdelimited startdelimitedtext startdisplaymath \
-startdmath startdocument starteffect startelement startembeddedxtable \
-startendnote startendofline startenvironment startexceptions startexpanded \
+squaredots squareintc ssharp stacking stackrel \
+stackscripts star stareq starmarked startJScode \
+startJSpreamble startLUA startMP startMPclip startMPcode \
+startMPdefinitions startMPdrawing startMPenvironment startMPextensions startMPinclusions \
+startMPinitializations startMPpage startMPpositiongraphic startMPpositionmethod startMPrun \
+startPARSEDXML startTABLE startTABLEbody startTABLEfoot startTABLEhead \
+startTABLEnested startTABLEnext startTABLEsection startTC startTD \
+startTDs startTEX startTEXpage startTH startTN \
+startTR startTRs startTX startTY startXML \
+startalign startalignment startallmodes startalternate startaodownintc \
+startaointc startappendices startarrangedpages startasciimode startaside \
+startattachment startbackground startbackmatter startbar startbarint \
+startbbordermatrix startbigbottom startbigcap startbigcup startbigdoublevee \
+startbigdoublewedge startbigodot startbigoplus startbigotimes startbigreversesolidus \
+startbigsolidus startbigsqcap startbigsqcup startbigtimes startbigtop \
+startbigudot startbiguplus startbigvee startbigwedge startbitmapimage \
+startblackboardsum startblockquote startbodymatter startbordermatrix startboxedcolumns \
+startboxexport startbtxlabeltext startbtxrenderingdefinitions startbuffer startcapint \
+startcases startcatcodetable startcenteraligned startchapter startcharacteralign \
+startcheckedfences startchemical startchemicaltext startcirclepoleinsideintc startcirclepoleoutsideintc \
+startcollect startcollecting startcolor startcolorintent startcoloronly \
+startcolorset startcolumns startcolumnset startcolumnsetspan startcombination \
+startcomment startcomponent startcontextcode startcontextdefinitioncode startcoprod \
+startctxfunction startctxfunctiondefinition startcupint startcurrentcolor startcurrentlistentrywrapper \
+startdelimited startdelimitedtext startdisplaymath startdmath startdocument \
+startdoublebarint starteffect startelement startembeddedxtable startendnote \
+startendofline startenvironment startequationsystem startexceptions startexpanded \
 startexpandedcollect startextendedcatcodetable startexternalfigurecollection startfacingfloat startfact \
 startfigure startfiguretext startfittingpage startfixed startfloatcombination \
 startfont startfontclass startfontsolution startfootnote startformula \
-startformulas startframed startframedcell startframedcontent startframedrow \
-startframedtable startframedtext startfrontmatter startgoto startgraphictext \
-startgridsnapping starthanging starthbox starthboxestohbox starthboxregister \
-starthead startheadtext starthelptext starthiding starthighlight \
-starthyphenation startimath startindentation startindentedtext startinteraction \
-startinteractionmenu startinterface startintermezzotext startintertext startitem \
-startitemgroup startitemgroupcolumns startitemize startknockout startlabeltext \
-startlanguage startlayout startleftaligned startlegend startline \
-startlinealignment startlinecorrection startlinefiller startlinenote startlinenumbering \
-startlines startlinetable startlinetablebody startlinetablecell startlinetablehead \
-startlocalfootnotes startlocalheadsetup startlocallinecorrection startlocalnotes startlocalsetups \
-startlua startluacode startluaparameterset startluasetups startmakeup \
-startmarginblock startmarginrule startmarkedcontent startmarkpages startmathalignment \
-startmathcases startmathlabeltext startmathmatrix startmathmode startmathstyle \
-startmatrices startmatrix startmaxaligned startmdformula startmidaligned \
-startmiddlealigned startmiddlemakeup startmixedcolumns startmode startmodeset \
-startmodule startmoduletestsection startmpformula startmulticolumns startnamedsection \
-startnamedsubformulas startnarrow startnarrower startnegative startnicelyfilledbox \
-startnointerference startnotallmodes startnotext startnotmode startoperatortext \
-startopposite startoutputstream startoverlay startoverprint startpacked \
-startpagecolumns startpagecomment startpagefigure startpagelayout startpagemakeup \
-startpar startparagraph startparagraphs startparagraphscell startparbuilder \
+startformulacombination startformulas startframed startframedcell startframedcontent \
+startframedrow startframedtable startframedtext startfrontmatter startfullouterjoin \
+startgoto startgraphictext startgridsnapping starthanging starthbox \
+starthboxestohbox starthboxregister starthead startheadtext starthelptext \
+starthiddencontent starthiding starthighlight starthookleftarrowint starthyphenation \
+startiiiint startiiiintegral startiiint startiiintegral startiint \
+startiintegral startimath startindentation startindentedtext startint \
+startintc startintegral startinteraction startinteractionmenu startinterface \
+startintermezzotext startintertext startitem startitemgroup startitemgroupcolumns \
+startitemize startitemizetable startknockout startlabeltext startlanguage \
+startlayout startleftaligned startleftouterjoin startlegend startlequationsystem \
+startline startlinealignment startlinecorrection startlinefiller startlinenote \
+startlinenumbering startlines startlinetable startlinetablebody startlinetablecell \
+startlinetablehead startlocalbox startlocalboxrange startlocalfootnotes startlocalheadsetup \
+startlocallinecorrection startlocalnotes startlocalsetups startlowerint startlua \
+startluacode startluaparameterset startluasetups startmakeup startmarginblock \
+startmarginrule startmarkedcontent startmarkpages startmatch startmathalignment \
+startmathcases startmathematics startmathexport startmathfenced startmathlabeltext \
+startmathmatrix startmathmode startmathstyle startmatrices startmatrix \
+startmaxaligned startmdformula startmidaligned startmiddlealigned startmiddlemakeup \
+startmixedcolumns startmode startmodeset startmodtwosum startmodule \
+startmoduletestsection startmpformula startmulticolumns startnamedformula startnamedmatrix \
+startnamednotation startnamedsection startnamedsubformulas startnamedtyping startnarrow \
+startnarrower startnegative startnicelyfilledbox startnointerference startnotallmodes \
+startnotext startnotmode startoiiint startoiint startoint \
+startointc startoperatortext startopposite startoutputstream startoutputsubstream \
+startoverlay startoverprint startpacked startpageblock startpagecolumns \
+startpagecomment startpagefigure startpagelayout startpagemakeup startpar \
+startparagraph startparagraphs startparagraphscell startparagraphshape startparbuilder \
 startpart startpath startplacechemical startplacefigure startplacefloat \
 startplaceformula startplacegraphic startplaceintermezzo startplacelegend startplacepairedbox \
 startplacetable startpositioning startpositionoverlay startpositive startpostponing \
-startpostponingnotes startprefixtext startprocessassignmentcommand startprocessassignmentlist startprocesscommacommand \
-startprocesscommalist startproduct startproject startprotect startprotectedcolors \
-startpublication startpunctuation startquotation startquote startrandomized \
-startrandomseed startrawsetups startreadingfile startreferenceprefix startregime \
-startregister startreusableMPgraphic startrightaligned startruby startscript \
-startsdformula startsection startsectionblock startsectionblockenvironment startsectionlevel \
-startsetups startshapebox startshift startsidebar startsimplecolumns \
-startspecialitem startspeech startspformula startsplitformula startsplittext \
-startspread startstandardmakeup startstaticMPfigure startstaticMPgraphic startstrictinspectnextcharacter \
+startpostponingnotes startprefixtext startprerollpageblock startprocessassignmentcommand startprocessassignmentlist \
+startprocesscommacommand startprocesscommalist startprod startproduct startprofile \
+startproject startprotect startprotectedcolors startpublication startpunctuation \
+startquotation startquote startrandomized startrandomseed startraw \
+startrawsetups startreadingfile startrectangularpoleintc startreferenceprefix startregime \
+startregister startrequationsystem startreusableMPgraphic startrightaligned startrightouterjoin \
+startruby startscript startsdformula startsection startsectionblock \
+startsectionblockenvironment startsectionlevel startsemicirclepoleintc startsetups startshapebox \
+startshapedparagraph startshapetext startshift startshowbreakpoints startshowrivers \
+startsidebar startsimplecolumns startslashint startspecialitem startspeech \
+startspformula startsplittext startspread startsquareintc startstacking \
+startstackingsteps startstandardmakeup startstaticMPfigure startstaticMPgraphic startstrictinspectnextcharacter \
 startstructurepageregister startstrut startstyle startsubformulas startsubject \
-startsubjectlevel startsubsection startsubsentence startsubstack startsubsubject \
-startsubsubsection startsubsubsubject startsubsubsubsection startsubsubsubsubject startsubsubsubsubsection \
-startsubsubsubsubsubject startsuffixtext startsymbolset starttable starttablehead \
-starttables starttabletail starttabletext starttabulate starttabulatehead \
-starttabulatetail starttagged starttaglabeltext starttexcode starttexdefinition \
-starttext starttextbackground starttextbackgroundmanual starttextcolor starttextcolorintent \
-starttextflow starttextmakeup starttextrule startthematrix starttitle \
-starttokenlist starttokens starttransparent starttypescript starttypescriptcollection \
-starttyping startuniqueMPgraphic startuniqueMPpagegraphic startunittext startunpacked \
-startusableMPgraphic startuseMPgraphic startusemathstyleparameter startuserdata startusingbtxspecification \
-startvbox startvboxregister startvboxtohbox startvboxtohboxseparator startviewerlayer \
-startvtop startvtopregister startxcell startxcellgroup startxcolumn \
-startxgroup startxmldisplayverbatim startxmlinlineverbatim startxmlraw startxmlsetups \
-startxrow startxrowgroup startxtable startxtablebody startxtablefoot \
-startxtablehead startxtablenext stligature stopJScode stopJSpreamble \
-stopLUA stopMP stopMPclip stopMPcode stopMPdefinitions \
-stopMPdrawing stopMPenvironment stopMPextensions stopMPinclusions stopMPinitializations \
-stopMPpage stopMPpositiongraphic stopMPpositionmethod stopMPrun stopPARSEDXML \
-stopTABLE stopTABLEbody stopTABLEfoot stopTABLEhead stopTABLEnested \
-stopTABLEnext stopTC stopTD stopTDs stopTEX \
-stopTEXpage stopTH stopTN stopTR stopTRs \
-stopTX stopTY stopXML stopalign stopalignment \
-stopallmodes stopappendices stoparrangedpages stopasciimode stopaside \
-stopattachment stopbackground stopbackmatter stopbar stopbbordermatrix \
-stopbitmapimage stopblockquote stopbodymatter stopbordermatrix stopboxedcolumns \
-stopbtxlabeltext stopbtxrenderingdefinitions stopbuffer stopcases stopcatcodetable \
-stopcenteraligned stopchapter stopcharacteralign stopcheckedfences stopchemical \
-stopchemicaltext stopcollect stopcollecting stopcolor stopcolorintent \
+startsubjectlevel startsubnumberinghere startsubsection startsubsentence startsubstack \
+startsubsubject startsubsubsection startsubsubsubject startsubsubsubsection startsubsubsubsubject \
+startsubsubsubsubsection startsubsubsubsubsubject startsuffixtext startsum startsumint \
+startsymbolset starttable starttablehead starttables starttabletail \
+starttabletext starttabulate starttabulatehead starttabulatetail starttagged \
+starttaglabeltext starttexcode starttexdefinition starttext starttextbackground \
+starttextbackgroundmanual starttextcolor starttextcolorintent starttextdisplay starttextflow \
+starttextmakeup starttextrule startthematrix starttimesint starttiming \
+starttitle starttokenlist starttokens starttransparent starttypescript \
+starttypescriptcollection starttyping startuniqueMPgraphic startuniqueMPpagegraphic startunittext \
+startunpacked startupperint startusableMPgraphic startuseMPgraphic startusemathstyleparameter \
+startuserdata startusingbtxspecification startvbox startvboxregister startvboxtohbox \
+startvboxtohboxseparator startviewerlayer startvtop startvtopregister startxcell \
+startxcellgroup startxcolumn startxgroup startxmldisplayverbatim startxmlinlineverbatim \
+startxmlraw startxmlsetups startxrow startxrowgroup startxtable \
+startxtablebody startxtablefoot startxtablehead startxtablenext stligature \
+stopJScode stopJSpreamble stopLUA stopMP stopMPclip \
+stopMPcode stopMPdefinitions stopMPdrawing stopMPenvironment stopMPextensions \
+stopMPinclusions stopMPinitializations stopMPpage stopMPpositiongraphic stopMPpositionmethod \
+stopMPrun stopPARSEDXML stopTABLE stopTABLEbody stopTABLEfoot \
+stopTABLEhead stopTABLEnested stopTABLEnext stopTABLEsection stopTC \
+stopTD stopTDs stopTEX stopTEXpage stopTH \
+stopTN stopTR stopTRs stopTX stopTY \
+stopXML stopalign stopalignment stopallmodes stopalternate \
+stopaodownintc stopaointc stopappendices stoparrangedpages stopasciimode \
+stopaside stopattachment stopbackground stopbackmatter stopbar \
+stopbarint stopbbordermatrix stopbigbottom stopbigcap stopbigcup \
+stopbigdoublevee stopbigdoublewedge stopbigodot stopbigoplus stopbigotimes \
+stopbigreversesolidus stopbigsolidus stopbigsqcap stopbigsqcup stopbigtimes \
+stopbigtop stopbigudot stopbiguplus stopbigvee stopbigwedge \
+stopbitmapimage stopblackboardsum stopblockquote stopbodymatter stopbordermatrix \
+stopboxedcolumns stopboxexport stopbtxlabeltext stopbtxrenderingdefinitions stopbuffer \
+stopcapint stopcases stopcatcodetable stopcenteraligned stopchapter \
+stopcharacteralign stopcheckedfences stopchemical stopchemicaltext stopcirclepoleinsideintc \
+stopcirclepoleoutsideintc stopcollect stopcollecting stopcolor stopcolorintent \
 stopcoloronly stopcolorset stopcolumns stopcolumnset stopcolumnsetspan \
 stopcombination stopcomment stopcomponent stopcontextcode stopcontextdefinitioncode \
-stopctxfunction stopctxfunctiondefinition stopcurrentcolor stopcurrentlistentrywrapper stopdelimited \
-stopdelimitedtext stopdisplaymath stopdmath stopdocument stopeffect \
-stopelement stopembeddedxtable stopendnote stopendofline stopenvironment \
-stopexceptions stopexpanded stopexpandedcollect stopextendedcatcodetable stopexternalfigurecollection \
-stopfacingfloat stopfact stopfigure stopfiguretext stopfittingpage \
-stopfixed stopfloatcombination stopfont stopfontclass stopfontsolution \
-stopfootnote stopformula stopformulas stopframed stopframedcell \
+stopcoprod stopctxfunction stopctxfunctiondefinition stopcupint stopcurrentcolor \
+stopcurrentlistentrywrapper stopdelimited stopdelimitedtext stopdisplaymath stopdmath \
+stopdocument stopdoublebarint stopeffect stopelement stopembeddedxtable \
+stopendnote stopendofline stopenvironment stopequationsystem stopexceptions \
+stopexpanded stopexpandedcollect stopextendedcatcodetable stopexternalfigurecollection stopfacingfloat \
+stopfact stopfigure stopfiguretext stopfittingpage stopfixed \
+stopfloatcombination stopfont stopfontclass stopfontsolution stopfootnote \
+stopformula stopformulacombination stopformulas stopframed stopframedcell \
 stopframedcontent stopframedrow stopframedtable stopframedtext stopfrontmatter \
-stopgoto stopgraphictext stopgridsnapping stophanging stophbox \
-stophboxestohbox stophboxregister stophead stopheadtext stophelptext \
-stophiding stophighlight stophyphenation stopimath stopindentation \
-stopindentedtext stopinteraction stopinteractionmenu stopinterface stopintermezzotext \
-stopintertext stopitem stopitemgroup stopitemgroupcolumns stopitemize \
-stopknockout stoplabeltext stoplanguage stoplayout stopleftaligned \
-stoplegend stopline stoplinealignment stoplinecorrection stoplinefiller \
+stopfullouterjoin stopgoto stopgraphictext stopgridsnapping stophanging \
+stophbox stophboxestohbox stophboxregister stophead stopheadtext \
+stophelptext stophiddencontent stophiding stophighlight stophookleftarrowint \
+stophyphenation stopiiiint stopiiiintegral stopiiint stopiiintegral \
+stopiint stopiintegral stopimath stopindentation stopindentedtext \
+stopint stopintc stopintegral stopinteraction stopinteractionmenu \
+stopinterface stopintermezzotext stopintertext stopitem stopitemgroup \
+stopitemgroupcolumns stopitemize stopitemizetable stopknockout stoplabeltext \
+stoplanguage stoplayout stopleftaligned stopleftouterjoin stoplegend \
+stoplequationsystem stopline stoplinealignment stoplinecorrection stoplinefiller \
 stoplinenote stoplinenumbering stoplines stoplinetable stoplinetablebody \
-stoplinetablecell stoplinetablehead stoplocalfootnotes stoplocalheadsetup stoplocallinecorrection \
-stoplocalnotes stoplocalsetups stoplua stopluacode stopluaparameterset \
-stopluasetups stopmakeup stopmarginblock stopmarginrule stopmarkedcontent \
-stopmarkpages stopmathalignment stopmathcases stopmathlabeltext stopmathmatrix \
-stopmathmode stopmathstyle stopmatrices stopmatrix stopmaxaligned \
-stopmdformula stopmidaligned stopmiddlealigned stopmiddlemakeup stopmixedcolumns \
-stopmode stopmodeset stopmodule stopmoduletestsection stopmpformula \
-stopmulticolumns stopnamedsection stopnamedsubformulas stopnarrow stopnarrower \
-stopnegative stopnicelyfilledbox stopnointerference stopnotallmodes stopnotext \
-stopnotmode stopoperatortext stopopposite stopoutputstream stopoverlay \
-stopoverprint stoppacked stoppagecolumns stoppagecomment stoppagefigure \
-stoppagelayout stoppagemakeup stoppar stopparagraph stopparagraphs \
-stopparagraphscell stopparbuilder stoppart stoppath stopplacechemical \
-stopplacefigure stopplacefloat stopplaceformula stopplacegraphic stopplaceintermezzo \
-stopplacelegend stopplacepairedbox stopplacetable stoppositioning stoppositionoverlay \
-stoppositive stoppostponing stoppostponingnotes stopprefixtext stopprocessassignmentcommand \
-stopprocessassignmentlist stopprocesscommacommand stopprocesscommalist stopproduct stopproject \
-stopprotect stopprotectedcolors stoppublication stoppunctuation stopquotation \
-stopquote stoprandomized stoprandomseed stoprawsetups stopreadingfile \
-stopreferenceprefix stopregime stopreusableMPgraphic stoprightaligned stopruby \
-stopscript stopsdformula stopsection stopsectionblock stopsectionblockenvironment \
-stopsectionlevel stopsetups stopshapebox stopshift stopsidebar \
-stopsimplecolumns stopspecialitem stopspeech stopspformula stopsplitformula \
-stopsplittext stopspread stopstandardmakeup stopstaticMPfigure stopstaticMPgraphic \
-stopstrictinspectnextcharacter stopstrut stopstyle stopsubformulas stopsubject \
-stopsubjectlevel stopsubsection stopsubsentence stopsubstack stopsubsubject \
+stoplinetablecell stoplinetablehead stoplocalbox stoplocalboxrange stoplocalfootnotes \
+stoplocalheadsetup stoplocallinecorrection stoplocalnotes stoplocalsetups stoplowerint \
+stoplua stopluacode stopluaparameterset stopluasetups stopmakeup \
+stopmarginblock stopmarginrule stopmarkedcontent stopmarkpages stopmatch \
+stopmathalignment stopmathcases stopmathematics stopmathexport stopmathfenced \
+stopmathlabeltext stopmathmatrix stopmathmode stopmathstyle stopmatrices \
+stopmatrix stopmaxaligned stopmdformula stopmidaligned stopmiddlealigned \
+stopmiddlemakeup stopmixedcolumns stopmode stopmodeset stopmodtwosum \
+stopmodule stopmoduletestsection stopmpformula stopmulticolumns stopnamedformula \
+stopnamedmatrix stopnamednotation stopnamedsection stopnamedsubformulas stopnamedtyping \
+stopnarrow stopnarrower stopnegative stopnicelyfilledbox stopnointerference \
+stopnotallmodes stopnotext stopnotmode stopoiiint stopoiint \
+stopoint stopointc stopoperatortext stopopposite stopoutputstream \
+stopoutputsubstream stopoverlay stopoverprint stoppacked stoppageblock \
+stoppagecolumns stoppagecomment stoppagefigure stoppagelayout stoppagemakeup \
+stoppar stopparagraph stopparagraphs stopparagraphscell stopparagraphshape \
+stopparbuilder stoppart stoppath stopplacechemical stopplacefigure \
+stopplacefloat stopplaceformula stopplacegraphic stopplaceintermezzo stopplacelegend \
+stopplacepairedbox stopplacetable stoppositioning stoppositionoverlay stoppositive \
+stoppostponing stoppostponingnotes stopprefixtext stopprerollpageblock stopprocessassignmentcommand \
+stopprocessassignmentlist stopprocesscommacommand stopprocesscommalist stopprod stopproduct \
+stopprofile stopproject stopprotect stopprotectedcolors stoppublication \
+stoppunctuation stopquotation stopquote stoprandomized stoprandomseed \
+stopraw stoprawsetups stopreadingfile stoprectangularpoleintc stopreferenceprefix \
+stopregime stoprequationsystem stopreusableMPgraphic stoprightaligned stoprightouterjoin \
+stopruby stopscript stopsdformula stopsection stopsectionblock \
+stopsectionblockenvironment stopsectionlevel stopsemicirclepoleintc stopsetups stopshapebox \
+stopshapedparagraph stopshapetext stopshift stopshowbreakpoints stopshowrivers \
+stopsidebar stopsimplecolumns stopslashint stopspecialitem stopspeech \
+stopspformula stopsplittext stopspread stopsquareintc stopstacking \
+stopstackingsteps stopstandardmakeup stopstaticMPfigure stopstaticMPgraphic stopstrictinspectnextcharacter \
+stopstrut stopstyle stopsubformulas stopsubject stopsubjectlevel \
+stopsubnumberinghere stopsubsection stopsubsentence stopsubstack stopsubsubject \
 stopsubsubsection stopsubsubsubject stopsubsubsubsection stopsubsubsubsubject stopsubsubsubsubsection \
-stopsubsubsubsubsubject stopsuffixtext stopsymbolset stoptable stoptablehead \
-stoptables stoptabletail stoptabletext stoptabulate stoptabulatehead \
-stoptabulatetail stoptagged stoptaglabeltext stoptexcode stoptexdefinition \
-stoptext stoptextbackground stoptextbackgroundmanual stoptextcolor stoptextcolorintent \
-stoptextflow stoptextmakeup stoptextrule stopthematrix stoptitle \
+stopsubsubsubsubsubject stopsuffixtext stopsum stopsumint stopsymbolset \
+stoptable stoptablehead stoptables stoptabletail stoptabletext \
+stoptabulate stoptabulatehead stoptabulatetail stoptagged stoptaglabeltext \
+stoptexcode stoptexdefinition stoptext stoptextbackground stoptextbackgroundmanual \
+stoptextcolor stoptextcolorintent stoptextdisplay stoptextflow stoptextmakeup \
+stoptextrule stopthematrix stoptimesint stoptiming stoptitle \
 stoptokenlist stoptokens stoptransparent stoptypescript stoptypescriptcollection \
 stoptyping stopuniqueMPgraphic stopuniqueMPpagegraphic stopunittext stopunpacked \
-stopusableMPgraphic stopuseMPgraphic stopusemathstyleparameter stopuserdata stopusingbtxspecification \
-stopvbox stopvboxregister stopvboxtohbox stopvboxtohboxseparator stopviewerlayer \
-stopvtop stopvtopregister stopxcell stopxcellgroup stopxcolumn \
-stopxgroup stopxmldisplayverbatim stopxmlinlineverbatim stopxmlraw stopxmlsetups \
-stopxrow stopxrowgroup stopxtable stopxtablebody stopxtablefoot \
-stopxtablehead stopxtablenext stretched strictdoifelsenextoptional strictdoifnextoptionalelse \
-stripcharacter strippedcsname stripspaces structurelistuservariable structurenumber \
-structuretitle structureuservariable structurevariable strut strutdp \
-strutgap strutht struthtdp struttedbox strutwd \
-style styleinstance subject subpagenumber subsection \
-subsentence subset subseteq subseteqq subsetneq \
-subsetneqq substituteincommalist subsubject subsubsection subsubsubject \
-subsubsubsection subsubsubsubject subsubsubsubsection subsubsubsubsubject subtractfeature \
-succ succapprox succcurlyeq succeq succeqq \
-succnapprox succneq succneqq succnsim succsim \
-suffixlanguage suffixtext sum supset supseteq \
-supseteqq supsetneq supsetneqq surd surdradical \
-swapcounts swapdimens swapface swapmacros swaptypeface \
-swarrow switchstyleonly switchtobodyfont switchtocolor switchtointerlinespace \
-symbol symbolreference synchronizeblank synchronizeindenting synchronizemarking \
-synchronizeoutputstreams synchronizestrut synchronizewhitespace synctexblockfilename synctexresetfilename \
-synctexsetfilename systemlog systemlogfirst systemloglast systemsetups \
-tLeftarrow tLeftrightarrow tRightarrow tabulateautoline tabulateautorule \
-tabulateline tabulaterule taggedctxcommand taggedlabeltexts taglabellanguage \
-taglabeltext tau tbinom tbox tcaron \
+stopupperint stopusableMPgraphic stopuseMPgraphic stopusemathstyleparameter stopuserdata \
+stopusingbtxspecification stopvbox stopvboxregister stopvboxtohbox stopvboxtohboxseparator \
+stopviewerlayer stopvtop stopvtopregister stopxcell stopxcellgroup \
+stopxcolumn stopxgroup stopxmldisplayverbatim stopxmlinlineverbatim stopxmlraw \
+stopxmlsetups stopxrow stopxrowgroup stopxtable stopxtablebody \
+stopxtablefoot stopxtablehead stopxtablenext stretched strictdoifelsenextoptional \
+strictdoifnextoptionalelse stripcharacter strippedcsname stripspaces structurelistuservariable \
+structurenumber structuretitle structureuservariable structurevariable strut \
+strutdp strutgap strutht struthtdp struttedbox \
+strutwd style styleinstance subject subpagenumber \
+subsection subsentence subset subseteq subseteqq \
+subsetneq subsetneqq substituteincommalist subsubject subsubsection \
+subsubsubject subsubsubsection subsubsubsubject subsubsubsubsection subsubsubsubsubject \
+subtractfeature succ succapprox succcurlyeq succeq \
+succeqq succnapprox succneq succneqq succnsim \
+succsim suffixlanguage suffixtext sum sumint \
+sup supset supseteq supseteqq supsetneq \
+supsetneqq surd surdradical swapcounts swapdimens \
+swapface swapmacros swaptypeface swarrow switchstyleonly \
+switchtobodyfont switchtocolor switchtointerlinespace symbol symbolreference \
+synchronizeblank synchronizeindenting synchronizemarking synchronizeoutputstreams synchronizestrut \
+synchronizewhitespace synctexblockfilename synctexresetfilename synctexsetfilename systemlog \
+systemlogfirst systemloglast systemsetups tLeftarrow tLeftrightarrow \
+tRightarrow tabulateautoline tabulateautorule tabulateline tabulaterule \
+taggedctxcommand taggedlabeltexts taglabellanguage taglabeltext tan \
+tanh tau tbinom tbox tcaron \
 tcedilla tcommaaccent tcurl tendsto tequal \
 test testandsplitstring testcolumn testfeature testfeatureonce \
 testpage testpageonly testpagesync testtokens tex \
@@ -1163,117 +1270,137 @@
 textcomma textcontrolspace textcurrency textdag textddag \
 textdegree textdiaeresis textdiv textdollar textdong \
 textdotaccent textellipsis texteuro textflowcollector textfraction \
-textgrave texthash texthorizontalbar texthungarumlaut texthyphen \
-textkelvin textlognot textmacron textmath textmho \
-textminus textmp textmu textmultiply textnumero \
-textogonek textohm textormathchar textormathchars textounce \
-textpercent textperiod textplus textpm textreference \
-textring textrule textslash textsterling texttilde \
-textunderscore textvisiblespace textyen thai thainumerals \
-thedatavalue thefirstcharacter thematrix thenormalizedbodyfontsize theorientation \
-therefore theremainingcharacters theta thickspace thinrule \
-thinrules thinspace thirdderivativesymbol thirdoffivearguments thirdoffourarguments \
-thirdofsixarguments thirdofthreearguments thirdofthreeunexpanded thook thookleftarrow \
-thookrightarrow thorn threedigitrounding threeeighths threefifths \
-threeperemspace threequarter threesuperior tibetannumerals tightlayer \
-tilde times tinyfont title tlap \
-tleftarrow tleftharpoondown tleftharpoonup tleftrightarrow tleftrightharpoons \
-tmapsto to tochar tolinenote tooltip \
-top topbox topleftbox toplinebox toprightbox \
-topskippedbox tracecatcodetables tracedfontname tracedpagestate traceoutputroutines \
-tracepositions trademark translate transparencycomponents transparent \
+textgrave texthash texthere texthorizontalbar texthungarumlaut \
+texthyphen textkelvin textlognot textmacron textmath \
+textmho textminus textmp textmu textmultiply \
+textnumero textogonek textohm textormathchar textormathchars \
+textounce textpercent textperiod textplus textpm \
+textreference textring textrule textslash textstacker \
+textsterling texttilde textunderscore textvisiblespace textyen \
+tfrac thai thainumerals thedatavalue thefirstcharacter \
+thematrix thenormalizedbodyfontsize theorientation therefore theremainingcharacters \
+theta thickspace thinrule thinrules thinspace \
+thirdderivative thirdderivativesymbol thirdoffivearguments thirdoffourarguments thirdofsixarguments \
+thirdofthreearguments thirdofthreeunexpanded thook thookleftarrow thookrightarrow \
+thorn threedigitrounding threeeighths threefifths threeperemspace \
+threequarter threesuperior tibetannumerals tightfitboundary tightfitcompensation \
+tightlayer tilde tildemarked times timesint \
+tinyfont title tlap tleftarrow tleftharpoondown \
+tleftharpoonup tleftoverrightarrow tleftrightarrow tleftrightharpoons tmapsto \
+to tochar tolinenote tooltip top \
+topbox topleftbox toplinebox toprightbox topskippedbox \
+tracecatcodetables tracedfontname tracedpagestate traceoutputroutines tracepositions \
+trademark translate transparencycomponents transparent transpose \
 transposesymbol trel triangle triangledown triangleleft \
-triangleq triangleright trightarrow trightharpoondown trightharpoonup \
-trightleftharpoons trightoverleftarrow triplebond tripleprime tripleverticalbar \
+triangleq triangleright triggergroupedcommand triggergroupedcommandcs trightarrow \
+trightharpoondown trightharpoonup trightleftharpoons trightoverleftarrow triplebond \
+tripleprime tripleprimed triplereltext triplereverseprimed tripleverticalbar \
 truefilename truefontname tstroke ttraggedright ttriplerel \
 ttwoheadleftarrow ttwoheadrightarrow turnediota twodigitrounding twofifths \
-twoheaddownarrow twoheadleftarrow twoheadrightarrow twoheadrightarrowtail twoheaduparrow \
-twosuperior twothirds tx txx typ \
-type typebuffer typedefinedbuffer typeface typefile \
-typeinlinebuffer typescriptone typescriptprefix typescriptthree typescripttwo \
-typesetbuffer typesetbufferonly typesetfile uacute ubreve \
-ucaron uchexnumber uchexnumbers ucircumflex uconvertnumber \
-udiaeresis udiaeresisacute udiaeresiscaron udiaeresisgrave udiaeresismacron \
-udotbelow udots udoublegrave uedcatcodecommand ugrave \
-uhook uhorn uhornacute uhorndotbelow uhorngrave \
-uhornhook uhorntilde uhungarumlaut uinvertedbreve ulcorner \
-umacron undefinevalue undepthed underbar underbars \
-underbartext underbrace underbracetext underbracket underbrackettext \
-underdash underdashes underdot underdots underleftarrow \
-underleftharpoondown underleftharpoonup underleftrightarrow underparent underparenttext \
-underrandom underrandoms underrightarrow underrightharpoondown underrightharpoonup \
-underset understrike understrikes undertwoheadleftarrow undertwoheadrightarrow \
-undoassign unexpandeddocumentvariable unframed unhhbox unihex \
-uniqueMPgraphic uniqueMPpagegraphic unit unitlanguage unitshigh \
-unitslow unittext unknown unprotected unregisterhyphenationpattern \
-unregisterparwrapper unspaceafter unspaceargument unspaced unspacestring \
-unstackscripts untexargument untexcommand uogonek upand \
-uparrow updasharrow updateparagraphdemerits updateparagraphpenalties updateparagraphproperties \
-updateparagraphshapes updownarrow updownarrowbar updownarrows upharpoonleft \
-upharpoonright uplus uppercased uppercasestring uppercasing \
-upperleftdoubleninequote upperleftdoublesixquote upperleftsingleninequote upperleftsinglesixquote upperrightdoubleninequote \
-upperrightdoublesixquote upperrightsingleninequote upperrightsinglesixquote upsilon upuparrows \
-upwhitearrow urcorner uring url useJSscripts \
-useMPenvironmentbuffer useMPgraphic useMPlibrary useMPrun useMPvariables \
-useURL usealignparameter useblankparameter useblocks usebodyfont \
-usebodyfontparameter usebtxdataset usebtxdefinitions usecitation usecolors \
-usecomponent usedirectory usedummycolorparameter usedummystyleandcolor usedummystyleparameter \
-useenvironment useexternaldocument useexternalfigure useexternalrendering useexternalsoundtrack \
-usefigurebase usefile usefontpath usegridparameter usehyphensparameter \
-useindentingparameter useindentnextparameter useinterlinespaceparameter uselanguageparameter useluamodule \
-useluatable usemathstyleparameter usemodule useproduct useprofileparameter \
-useproject usereferenceparameter userpagenumber usesetupsparameter usestaticMPfigure \
-usesubpath usesymbols usetexmodule usetypescript usetypescriptfile \
-useurl usezipfile utfchar utflower utfupper \
-utilde utilityregisterlength vDash validassignment varTheta \
-varepsilon varkappa varnothing varphi varpi \
-varrho varsigma vartheta vboxreference vdash \
-vdots vec vee veebar veeeq \
-verbatim verbatimstring verbosenumber version vert \
-verticalgrowingbar verticalpositionbar veryraggedcenter veryraggedleft veryraggedright \
-vglue viewerlayer vl vpackbox vpackedbox \
-vphantom vpos vsmash vsmashbox vsmashed \
-vspace vspacing wcircumflex wdofstring wedge \
-wedgeeq weekday whitearrowupfrombar wideacute widebar \
-widebreve widecheck wideddot widedot widegrave \
-widehat widering widetilde widthofstring widthspanningtext \
-withoutpt word wordright words wordtonumber \
-wp wr writebetweenlist writedatatolist writestatus \
-writetolist xLeftarrow xLeftrightarrow xRightarrow xdefconvertedargument \
-xequal xfrac xhookleftarrow xhookrightarrow xi \
-xleftarrow xleftharpoondown xleftharpoonup xleftrightarrow xleftrightharpoons \
+twoheaddownarrow twoheadleftarrow twoheadleftarrowtext twoheadrightarrow twoheadrightarrowtail \
+twoheadrightarrowtext twoheaduparrow twosuperior twothirds tx \
+txx typ type typebuffer typedefinedbuffer \
+typeface typefile typeinlinebuffer typescriptone typescriptprefix \
+typescriptthree typescripttwo typesetbuffer typesetbufferonly typesetfile \
+uacute ubreve ucaron uchexnumber uchexnumbers \
+ucircumflex uconvertnumber udiaeresis udiaeresisacute udiaeresiscaron \
+udiaeresisgrave udiaeresismacron udotbelow udots udoublegrave \
+uedcatcodecommand ugrave uhook uhorn uhornacute \
+uhorndotbelow uhorngrave uhornhook uhorntilde uhungarumlaut \
+uinvertedbreve ulcorner umacron undefinevalue undepthed \
+underLeftarrow underLeftbararrow underLeftrightarrow underRightarrow underRightbararrow \
+underbar underbars underbartext underbrace underbracetext \
+underbracket underbrackettext underdash underdashes underdot \
+underdots undergraphic underleftarrow underleftbararrow underleftharpoondown \
+underleftharpoonup underlefthookarrow underleftrightarrow underlefttailarrow underparent \
+underparenttext underrandom underrandoms underrightarrow underrightbararrow \
+underrightharpoondown underrightharpoonup underrighthookarrow underrighttailarrow underset \
+understrike understrikes undertwoheadleftarrow undertwoheadrightarrow undoassign \
+unexpandeddocumentvariable unframed unhhbox unicodechar unicodehexnumber \
+unicodenumber unihex uniqueMPgraphic uniqueMPpagegraphic unit \
+unitlanguage unitshigh unitslow unittext unknown \
+unknownchar unprotected unregisterhyphenationpattern unregisterparwrapper unspaceafter \
+unspaceargument unspaced unspacestring unstackscripts untexargument \
+untexcommand uogonek upand uparrow updasharrow \
+updateparagraphdemerits updateparagraphpenalties updateparagraphproperties updateparagraphshapes updownarrow \
+updownarrowbar updownarrows upharpoonleft upharpoonright uplus \
+uppercased uppercasestring uppercasing upperint upperleftdoubleninequote \
+upperleftdoublesixquote upperleftsingleninequote upperleftsinglesixquote upperrightdoubleninequote upperrightdoublesixquote \
+upperrightsingleninequote upperrightsinglesixquote upsilon upuparrows upwhitearrow \
+urcorner uring url useJSscripts useMPenvironmentbuffer \
+useMPgraphic useMPlibrary useMPrun useMPvariables useURL \
+usealignparameter useblankparameter useblocks usebodyfont usebodyfontparameter \
+usebtxdataset usebtxdefinitions usecitation usecolors usecomponent \
+usedadaptivealternative usedadaptivebox usedadaptivecolor usedadaptivedepth usedadaptiveheight \
+usedadaptivehsize usedadaptiveline usedadaptivetotal usedadaptivewidth usedirectory \
+usedummycolorparameter usedummystyleandcolor usedummystyleparameter useenvironment useexternaldocument \
+useexternalfigure useexternalrendering usefigurebase usefile usefontpath \
+usegridparameter usehyphensparameter useindentingparameter useindentnextparameter useinterlinespaceparameter \
+uselanguageparameter uselist useluamodule useluatable usemathstyleparameter \
+usemodule useproduct useprofileparameter useproject usereferenceparameter \
+useregister userpagenumber usesetupsparameter usestaticMPfigure usesubpath \
+usesymbols usetexmodule usetypescript usetypescriptfile useurl \
+usezipfile utfchar utflower utfupper utilde \
+utilityregisterlength vDash validassignment varTheta varepsilon \
+varkappa varleftopeninterval varnothing varopeninterval varphi \
+varpi varrho varrightopeninterval varsigma vartheta \
+vboxreference vdash vdots vec vee \
+veebar veeeq verbatim verbatimstring verbosenumber \
+version vert verticalgrowingbar verticalpositionbar veryraggedcenter \
+veryraggedleft veryraggedright vfrac vglue viewerlayer \
+vl vmatrix vpackbox vpackedbox vphantom \
+vpos vsmash vsmashbox vsmashed vspace \
+vspacing vvmatrix vvvmatrix wcircumflex wdofstring \
+wedge wedgeeq weekday whitearrowupfrombar wideacute \
+widebar widebreve widecheck widedddot wideddot \
+widedot widegrave widehat wideoverleftarrow wideoverleftharpoon \
+wideoverleftrightarrow wideoverrightarrow wideoverrightharpoon widering widetilde \
+wideunderbar wideunderleftarrow wideunderleftharpoon wideunderleftrightarrow wideunderrightarrow \
+wideunderrightharpoon wideundertilde widthofstring widthspanningtext wipedtokens \
+wipetokens withoutpt word wordright words \
+wordtonumber wp wr writebetweenlist writedatatolist \
+writestatus writetolist xLeftarrow xLeftrightarrow xRightarrow \
+xdefconvertedargument xequal xfrac xhookleftarrow xhookrightarrow \
+xi xleftarrow xleftharpoondown xleftharpoonup xleftoverrightarrow \
+xleftrightarrow xleftrightharpoons xlongleftarrow xlongleftrightarrow xlongrightarrow \
 xmapsto xmladdindex xmlafterdocumentsetup xmlaftersetup xmlall \
 xmlappenddocumentsetup xmlappendsetup xmlapplyselectors xmlatt xmlattdef \
 xmlattribute xmlattributedef xmlbadinclusions xmlbeforedocumentsetup xmlbeforesetup \
 xmlchainatt xmlchainattdef xmlchecknamespace xmlcommand xmlconcat \
-xmlconcatrange xmlcontext xmlcount xmldefaulttotext xmldepth \
-xmldirectives xmldirectivesafter xmldirectivesbefore xmldisplayverbatim xmldoif \
-xmldoifatt xmldoifelse xmldoifelseatt xmldoifelseempty xmldoifelseselfempty \
-xmldoifelsetext xmldoifelsevalue xmldoifnot xmldoifnotatt xmldoifnotselfempty \
-xmldoifnottext xmldoifselfempty xmldoiftext xmlelement xmlfilter \
-xmlfirst xmlflush xmlflushcontext xmlflushdocumentsetups xmlflushlinewise \
-xmlflushpure xmlflushspacewise xmlflushtext xmlinclude xmlinclusion \
-xmlinclusions xmlinfo xmlinjector xmlinlineprettyprint xmlinlineprettyprinttext \
-xmlinlineverbatim xmlinstalldirective xmllast xmllastatt xmllastmatch \
-xmllastpar xmlloadbuffer xmlloaddata xmlloaddirectives xmlloadfile \
-xmlloadonly xmlmain xmlmapvalue xmlname xmlnamespace \
+xmlconcatrange xmlcontext xmlcount xmldata xmldefaulttotext \
+xmldelete xmldepth xmldirect xmldirectives xmldirectivesafter \
+xmldirectivesbefore xmldisplayverbatim xmldocument xmldoif xmldoifatt \
+xmldoifelse xmldoifelseatt xmldoifelseempty xmldoifelseselfempty xmldoifelsetext \
+xmldoifelsevalue xmldoifempty xmldoifemptyelse xmldoifnot xmldoifnotatt \
+xmldoifnotempty xmldoifnotselfempty xmldoifnottext xmldoifselfempty xmldoifselfemptyelse \
+xmldoiftext xmldoiftextelse xmldoifvalueelse xmlelement xmlfileline \
+xmlfilename xmlfilter xmlfirst xmlflush xmlflushcontext \
+xmlflushdocumentsetups xmlflushlinewise xmlflushpure xmlflushsetups xmlflushspacewise \
+xmlflushtext xmlfunction xmlinclude xmlincludeoptions xmlinclusion \
+xmlinclusionbase xmlinclusions xmlindex xmlinfo xmlinjector \
+xmlinlineprettyprint xmlinlineprettyprinttext xmlinlineverbatim xmlinstalldirective xmllast \
+xmllastatt xmllastmatch xmllastpar xmlload xmlloadbuffer \
+xmlloaddata xmlloaddirectives xmlloadfile xmlloadonly xmlmain \
+xmlmapval xmlmapvalue xmlmatch xmlname xmlnamespace \
 xmlnonspace xmlpar xmlparam xmlpath xmlpos \
 xmlposition xmlprependdocumentsetup xmlprependsetup xmlprettyprint xmlprettyprinttext \
-xmlprocessbuffer xmlprocessdata xmlprocessfile xmlpure xmlraw \
-xmlrefatt xmlregistereddocumentsetups xmlregisteredsetups xmlregisterns xmlremapname \
-xmlremapnamespace xmlremovedocumentsetup xmlremovesetup xmlresetdocumentsetups xmlresetinjectors \
-xmlresetsetups xmlsave xmlsetatt xmlsetattribute xmlsetentity \
-xmlsetfunction xmlsetinjectors xmlsetpar xmlsetparam xmlsetsetup \
-xmlsetup xmlshow xmlsnippet xmlstrip xmlstripnolines \
-xmlstripped xmlstrippednolines xmltag xmltexentity xmltext \
-xmltobuffer xmltobufferverbose xmltofile xmlvalue xmlverbatim \
-xrel xrightarrow xrightharpoondown xrightharpoonup xrightleftharpoons \
-xrightoverleftarrow xsplitstring xtriplerel xtwoheadleftarrow xtwoheadrightarrow \
-xxfrac xypos yacute ycircumflex ydiaeresis \
-ydotbelow yen ygrave yhook yiddishnumerals \
-ymacron ytilde zacute zcaron zdotaccent \
-zeronumberconversion zerowidthnobreakspace zerowidthspace zeta zhook \
-zstroke zwj zwnj 
+xmlprocess xmlprocessbuffer xmlprocessdata xmlprocessfile xmlpure \
+xmlraw xmlrefatt xmlregisterdocumentsetup xmlregistereddocumentsetups xmlregisteredsetups \
+xmlregisterns xmlregistersetup xmlremapname xmlremapnamespace xmlremovedocumentsetup \
+xmlremovesetup xmlresetdocumentsetups xmlresetinjectors xmlresetsetups xmls \
+xmlsave xmlsetatt xmlsetattribute xmlsetentity xmlsetfunction \
+xmlsetinjectors xmlsetpar xmlsetparam xmlsetsetup xmlsetup \
+xmlshow xmlsnippet xmlstrip xmlstripanywhere xmlstripeverything \
+xmlstripnolines xmlstripped xmlstrippednolines xmltag xmltexatt \
+xmltexentity xmltext xmltobuffer xmltobuffertextonly xmltobufferverbose \
+xmltofile xmltoparameters xmlval xmlvalue xmlverbatim \
+xmlw xrel xrightarrow xrightharpoondown xrightharpoonup \
+xrightleftharpoons xrightoverleftarrow xsplitstring xtriplerel xtwoheadleftarrow \
+xtwoheadrightarrow xxfrac xypos yacute ycircumflex \
+ydiaeresis ydotbelow yen ygrave yhook \
+yiddishnumerals ymacron ytilde zacute zcaron \
+zdotaccent zeronumberconversion zerowidthnobreakspace zerowidthspace zeta \
+zhook zstroke zwj zwnj 
 
 keywordclass.context.en=\
 

Modified: trunk/Master/texmf-dist/context/data/scite/context/scite-context-data-metafun.properties
===================================================================
--- trunk/Master/texmf-dist/context/data/scite/context/scite-context-data-metafun.properties	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/context/data/scite/context/scite-context-data-metafun.properties	2025-02-19 22:48:50 UTC (rev 74156)
@@ -8,92 +8,97 @@
 acosh asinh sinh cosh tanh \
 zmod paired tripled unitcircle fulldiamond \
 unitdiamond fullsquare unittriangle fulltriangle unitoctagon \
-fulloctagon unithexagon fullhexagon llcircle lrcircle \
-urcircle ulcircle tcircle bcircle lcircle \
-rcircle lltriangle lrtriangle urtriangle ultriangle \
-uptriangle downtriangle lefttriangle righttriangle triangle \
-smoothed cornered superellipsed randomized randomizedcontrols \
-squeezed enlonged shortened punked curved \
-unspiked simplified blownup stretched enlarged \
-leftenlarged topenlarged rightenlarged bottomenlarged crossed \
-laddered randomshifted interpolated perpendicular paralleled \
-cutends peepholed llenlarged lrenlarged urenlarged \
-ulenlarged llmoved lrmoved urmoved ulmoved \
-rightarrow leftarrow centerarrow drawdoublearrows boundingbox \
-innerboundingbox outerboundingbox pushboundingbox popboundingbox boundingradius \
-boundingcircle boundingpoint crossingunder insideof outsideof \
-bottomboundary leftboundary topboundary rightboundary xsized \
-ysized xysized sized xyscaled intersection_point \
-intersection_found penpoint bbwidth bbheight withshade \
-withcircularshade withlinearshade defineshade shaded shadedinto \
-withshadecolors withshadedomain withshademethod withshadefactor withshadevector \
-withshadecenter withshadedirection withshaderadius withshadetransform withshadecenterone \
-withshadecentertwo withshadestep withshadefraction withshadeorigin shownshadevector \
-shownshadeorigin shownshadedirection shownshadecenter cmyk spotcolor \
-multitonecolor namedcolor drawfill undrawfill inverted \
-uncolored softened grayed greyed onlayer \
-along graphictext loadfigure externalfigure figure \
-register outlinetext filloutlinetext drawoutlinetext outlinetexttopath \
-checkedbounds checkbounds strut rule withmask \
-bitmapimage colordecimals ddecimal dddecimal ddddecimal \
-colordecimalslist textext thetextext rawtextext textextoffset \
-texbox thetexbox rawtexbox istextext infotext \
-rawmadetext validtexbox onetimetextext rawfmttext thefmttext \
-fmttext onetimefmttext notcached keepcached verbatim \
-thelabel label autoalign transparent withtransparency \
-withopacity property properties withproperties asgroup \
-withpattern withpatternscale withpatternfloat infont space \
-crlf dquote percent SPACE CRLF \
-DQUOTE PERCENT grayscale greyscale withgray \
-withgrey colorpart colorlike readfile clearxy \
-unitvector center epsed anchored originpath \
-infinite break xstretched ystretched snapped \
-pathconnectors function constructedfunction constructedpath constructedpairs \
-straightfunction straightpath straightpairs curvedfunction curvedpath \
-curvedpairs evenly oddly condition pushcurrentpicture \
-popcurrentpicture arrowpath resetarrows tensecircle roundedsquare \
-colortype whitecolor blackcolor basiccolors complementary \
-complemented resolvedcolor normalfill normaldraw visualizepaths \
-detailpaths naturalizepaths drawboundary drawwholepath drawpathonly \
-visualizeddraw visualizedfill detaileddraw draworigin drawboundingbox \
-drawpath drawpoint drawpoints drawcontrolpoints drawcontrollines \
-drawpointlabels drawlineoptions drawpointoptions drawcontroloptions drawlabeloptions \
-draworiginoptions drawboundoptions drawpathoptions resetdrawoptions undashed \
-pencilled decorated redecorated undecorated passvariable \
-passarrayvariable tostring topair format formatted \
-quotation quote startpassingvariable stoppassingvariable eofill \
-eoclip nofill dofill fillup eofillup \
-nodraw dodraw enfill area addbackground \
-shadedup shadeddown shadedleft shadedright sortlist \
-copylist shapedlist listtocurves listtolines listsize \
-listlast uniquelist circularpath squarepath linearpath \
-theoffset texmode systemmode texvar texstr \
-isarray prefix dimension getmacro getdimen \
-getcount gettoks setmacro setdimen setcount \
-settoks setglobalmacro setglobaldimen setglobalcount setglobaltoks \
-positionpath positioncurve positionxy positionparagraph positioncolumn \
-positionwhd positionpage positionregion positionbox positionx \
-positiony positionanchor positioninregion positionatanchor positioncolumnbox \
-overlaycolumnbox positioncolumnatx getposboxes getmultipars getpospage \
-getposparagraph getposcolumn getposregion getposx getposy \
-getposwidth getposheight getposdepth getposleftskip getposrightskip \
-getposhsize getposparindent getposhangindent getposhangafter getposxy \
-getposupperleft getposlowerleft getposupperright getposlowerright getposllx \
-getposlly getposurx getposury wdpart htpart \
-dppart texvar texstr inpath pointof \
-leftof rightof utfnum utflen utfsub \
-newhash disposehash inhash tohash fromhash \
-isarray prefix isobject comment report \
-lua lualist mp MP luacall \
-mirrored mirroredabout xslanted yslanted scriptindex \
-newscriptindex newcolor newrgbcolor newcmykcolor newnumeric \
-newboolean newtransform newpath newpicture newstring \
-newpair mpvard mpvarn mpvars mpvar \
-withtolerance hatched withdashes processpath pencilled \
-sortedintersectiontimes intersectionpath firstintersectionpath secondintersectionpath intersectionsfound \
-cutbeforefirst cutafterfirst cutbeforelast cutafterlast xnormalized \
-ynormalized xynormalized phantom scrutinized xshifted \
-yshifted 
+fulloctagon unithexagon fullhexagon arc llcircle \
+lrcircle urcircle ulcircle tcircle bcircle \
+lcircle rcircle lltriangle lrtriangle urtriangle \
+ultriangle uptriangle downtriangle lefttriangle righttriangle \
+triangle smoothed cornered superellipsed randomized \
+randomizedcontrols randomrotatedcontrols squeezed enlonged shortened \
+punked curved unspiked simplified blownup \
+stretched enlarged leftenlarged topenlarged rightenlarged \
+bottomenlarged crossed laddered randomshifted interpolated \
+perpendicular paralleled cutends peepholed llenlarged \
+lrenlarged urenlarged ulenlarged llmoved lrmoved \
+urmoved ulmoved rightarrow leftarrow centerarrow \
+drawdoublearrows boundingbox innerboundingbox outerboundingbox pushboundingbox \
+popboundingbox boundingradius boundingcircle boundingpoint crossingunder \
+insideof outsideof bottomboundary leftboundary topboundary \
+rightboundary xsized ysized xysized sized \
+xyscaled intersection_point intersection_found penpoint bbwidth \
+bbheight withshade withcircularshade withlinearshade defineshade \
+shaded shadedinto withshadecolors withshadedomain withshademethod \
+withshadefactor withshadevector withshadecenter withshadedirection withshaderadius \
+withshadetransform withshadecenterone withshadecentertwo withshadestep withshadefraction \
+withshadeorigin shownshadevector shownshadeorigin shownshadedirection shownshadecenter \
+registerluminositygroup applyluminositygroup luminositygroup luminosityshade cmyk \
+spotcolor multitonecolor namedcolor drawfill undrawfill \
+inverted uncolored softened grayed greyed \
+dashing starring sortedpath uniquepath hascurvature \
+onlayer along graphictext loadfigure externalfigure \
+figure register outlinetext filloutlinetext drawoutlinetext \
+outlinetexttopath checkedbounds checkbounds strut rule \
+withmask bitmapimage colordecimals ddecimal dddecimal \
+ddddecimal colordecimalslist textext thetextext rawtextext \
+textextoffset texbox thetexbox rawtexbox istextext \
+infotext rawmadetext validtexbox onetimetextext rawfmttext \
+thefmttext fmttext onetimefmttext notcached keepcached \
+verbatim thelabel label autoalign transparent \
+withtransparency withopacity property properties withproperties \
+namedstacking withnamedstacking withannotation asgroup withpattern \
+withpatternscale withpatternfloat infont space crlf \
+dquote percent SPACE CRLF DQUOTE \
+PERCENT grayscale greyscale withgray withgrey \
+colorpart colorlike readfile clearxy unitvector \
+center epsed anchored originpath infinite \
+break xstretched ystretched snapped pathconnectors \
+function constructedfunction constructedpath constructedpairs straightfunction \
+straightpath straightpairs curvedfunction curvedpath curvedpairs \
+evenly oddly condition pushcurrentpicture popcurrentpicture \
+arrowpath resetarrows tensecircle roundedsquare colortype \
+whitecolor blackcolor basiccolors complementary complemented \
+resolvedcolor normalfill normaldraw visualizepaths detailpaths \
+naturalizepaths drawboundary drawwholepath drawpathonly visualizeddraw \
+visualizedfill detaileddraw draworigin drawboundingbox drawpath \
+drawpoint drawpoints drawcontrolpoints drawcontrollines drawpointlabels \
+drawlineoptions drawpointoptions drawcontroloptions drawlabeloptions draworiginoptions \
+drawboundoptions drawpathoptions resetdrawoptions undashed pencilled \
+decorated redecorated undecorated passvariable passarrayvariable \
+tostring topair format formatted quotation \
+quote startpassingvariable stoppassingvariable eofill eoclip \
+nofill dofill fillup eofillup nodraw \
+dodraw enfill area addbackground shadedup \
+shadeddown shadedleft shadedright sortlist copylist \
+shapedlist listtocurves listtolines listsize listlast \
+uniquelist circularpath squarepath linearpath theoffset \
+texmode systemmode texvar texstr isarray \
+prefix dimension getmacro getdimen getcount \
+gettoks setmacro setdimen setcount settoks \
+setglobalmacro setglobaldimen setglobalcount setglobaltoks positionpath \
+positioncurve positionxy positionparagraph positioncolumn positionwhd \
+positionpage positionregion positionbox positionx positiony \
+positionanchor positioninregion positionatanchor positioncolumnbox overlaycolumnbox \
+positioncolumnatx positioninregion positionpar getposboxes getmultipars \
+getpospage getposparagraph getposcolumn getposregion getposx \
+getposy getposwidth getposheight getposdepth getposleftskip \
+getposrightskip getposhsize getposparindent getposhangindent getposhangafter \
+getposxy getposupperleft getposlowerleft getposupperright getposlowerright \
+getposllx getposlly getposurx getposury wdpart \
+htpart dppart texvar texstr inpath \
+pointof leftof rightof utfchr utfnum \
+utflen utfsub newhash disposehash resethash \
+inhash tohash fromhash isarray prefix \
+isobject comment report lua lualist \
+mp MP luacall mirrored mirroredabout \
+xslanted yslanted scriptindex newscriptindex newcolor \
+newrgbcolor newcmykcolor newnumeric newboolean newtransform \
+newpath newpicture newstring newpair mpvard \
+mpvarn mpvars mpvar withtolerance hatched \
+withdashes processpath pencilled sortedintersectiontimes intersectionpath \
+firstintersectionpath secondintersectionpath intersectionsfound cutbeforefirst cutafterfirst \
+cutbeforelast cutafterlast xnormalized ynormalized xynormalized \
+phantom scrutinized xshifted yshifted reducedpath \
+reducedenvelope enveloped hasreducedcurvature totalarea penstroked \
+nepstroke 
 
 keywordclass.metafun.internals=\
 nocolormodel greycolormodel graycolormodel rgbcolormodel \

Modified: trunk/Master/texmf-dist/context/data/scite/context/scite-context-data-metapost.properties
===================================================================
--- trunk/Master/texmf-dist/context/data/scite/context/scite-context-data-metapost.properties	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/context/data/scite/context/scite-context-data-metapost.properties	2025-02-19 22:48:50 UTC (rev 74156)
@@ -25,15 +25,15 @@
 softjoin makelabel rotatedabout flex superellipse \
 image nullpen savepen clearpen penpos \
 penlabels range thru z laboff \
-bye red green blue cyan \
-magenta yellow black white background \
-mm pt dd bp cm \
-pc cc in dk es \
-ts triplet quadruplet totransform bymatrix \
-closedcurve closedlines primitive permanent immutable \
-mutable frozen showproperty showhashentry top \
-bot lft rt ulft urt \
-llft lrt 
+bye crossprod red green blue \
+cyan magenta yellow black white \
+background mm pt dd bp \
+cm pc cc in dk \
+es ts triplet quadruplet totransform \
+bymatrix closedcurve closedlines primitive permanent \
+immutable mutable frozen showproperty showhashentry \
+top bot lft rt ulft \
+urt llft lrt 
 
 keywordclass.metapost.disabled=\
 verbatimtex troffmode 
@@ -76,51 +76,55 @@
 time hour minute charcode charwd \
 charht chardp charic pausing showstopping \
 texscriptmode overloadmode linejoin linecap stacking \
-miterlimit warningcheck truecorners defaultcolormodel restoreclipcolor \
-numbersystem numberprecision jobname addto atleast \
-begingroup controls curl delimiters endgroup \
-everyjob exitif expandafter interim let \
-newinternal of randomseed maxknotpool save \
-scantokens runscript maketext shipout step \
-str void tension to until \
-within write btex verbatimtex etex \
-def vardef primarydef secondarydef tertiarydef \
-enddef for forsuffixes forever endfor \
-quote expr suffix text primary \
-secondary tertiary input endinput if \
-fi else elseif true false \
-nullpicture nullpen readstring pencircle normaldeviate \
-readfrom closefrom odd known unknown \
-not decimal reverse uncycle makepath \
-makepen makenep convexed uncontrolled oct \
-hex ASCII char length turningnumber \
-xpart ypart xxpart xypart yxpart \
-yypart redpart greenpart bluepart cyanpart \
-magentapart yellowpart blackpart greypart colormodel \
-prescriptpart postscriptpart stackingpart pathpart penpart \
-dashpart sqrt mexp mlog sind \
-cosd floor uniformdeviate llcorner lrcorner \
-ulcorner urcorner centerof centerofmass corners \
-xrange yrange deltapoint deltaprecontrol deltapostcontrol \
-deltadirection arclength angle cycle nocycle \
-stroked filled clipped grouped bounded \
-or and substring subpath directiontime \
-point precontrol postcontrol direction pathpoint \
-pathprecontrol pathpostcontrol pathdirection penoffset arctime \
-arcpoint arcpointlist subarclength mpversion rotated \
-slanted scaled shifted transformed xscaled \
-yscaled zscaled intersectiontimes intersectiontimeslist envelope \
-boundingpath numeric string boolean path \
-pen nep picture transform color \
-rgbcolor cmykcolor pair end dump \
-batchmode nonstopmode scrollmode errorstopmode silentmode \
-inner outer setproperty showtoken showstats \
-show showvariable showdependencies doublepath contour \
-also withpen dashed withprescript withpostscript \
-withstacking withlinecap withlinejoin withmiterlimit withoutcolor \
+miterlimit warningcheck defaultzeroangle truecorners defaultcolormodel \
+restoreclipcolor numbersystem jointolerance numberprecision jobname \
+addto atleast begingroup controls curl \
+delimiters endgroup everyjob exitif firstcontrol \
+secondcontrol expandafter interim let newinternal \
+of randomseed maxknotpool save scantokens \
+runscript maketext shipout step str \
+void tension to until within \
+write btex verbatimtex etex def \
+vardef primarydef secondarydef tertiarydef enddef \
+for forsuffixes forever endfor quote \
+expr suffix text primary secondary \
+tertiary input endinput if fi \
+else elseif true false nullpicture \
+nullpen readstring pencircle normaldeviate readfrom \
+closefrom odd known unknown not \
+decimal reverse uncycle makepath makepen \
+makenep convexed uncontrolled oct hex \
+ASCII char length turningnumber xpart \
+ypart xxpart xypart yxpart yypart \
+redpart greenpart bluepart cyanpart magentapart \
+yellowpart blackpart greypart colormodel prescriptpart \
+postscriptpart stackingpart pathpart penpart dashpart \
+sqrt mexp mlog sind cosd \
+floor uniformdeviate llcorner lrcorner ulcorner \
+urcorner centerof centerofmass corners xrange \
+yrange deltapoint deltaprecontrol deltapostcontrol deltadirection \
+arclength angle cycle nocycle stroked \
+filled clipped grouped bounded or \
+and substring subpath directiontime point \
+deltapoint pathindex pathlastindex pathlength pathfirst \
+pathlast pathstate precontrol postcontrol direction \
+pathpoint pathprecontrol pathpostcontrol pathdirection penoffset \
+arctime arcpoint arcpointlist subarclength mpversion \
+rotated slanted scaled shifted transformed \
+xscaled yscaled zscaled xyscaled xrelative \
+yrelative xyrelative xabsolute yabsolute xyabsolute \
+intersectiontimes intersectiontimeslist envelope boundingpath numeric \
+string boolean path pen nep \
+picture transform color rgbcolor cmykcolor \
+pair end dump batchmode nonstopmode \
+scrollmode errorstopmode silentmode inner outer \
+setproperty showtoken showstats show showvariable \
+showdependencies doublepath contour also withpen \
+dashed withprescript withpostscript withstacking withnestedprescript \
+withnestedpostscript withlinecap withlinejoin withmiterlimit withoutcolor \
 withgreyscale withcolor withrgbcolor withcmykcolor clip \
 setgroup setbounds message errmessage errhelp \
-graypart 
+lessdigits graypart 
 
 keywordclass.metapost.shortcuts=\
 .. ... -- --- \

Modified: trunk/Master/texmf-dist/context/data/scite/context/scite-context-data-tex.properties
===================================================================
--- trunk/Master/texmf-dist/context/data/scite/context/scite-context-data-tex.properties	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/context/data/scite/context/scite-context-data-tex.properties	2025-02-19 22:48:50 UTC (rev 74156)
@@ -32,16 +32,15 @@
 Umathlimitbelowvgap Umathlimits Umathnoaxis Umathnolimits Umathnolimitsubfactor \
 Umathnolimitsupfactor Umathnumeratorvariant Umathopenupdepth Umathopenupheight Umathoperatorsize \
 Umathoverbarkern Umathoverbarrule Umathoverbarvgap Umathoverdelimiterbgap Umathoverdelimitervariant \
-Umathoverdelimitervgap Umathoverlayaccentvariant Umathoverlinevariant Umathphantom Umathpresubshiftdistance \
-Umathpresupshiftdistance Umathprimeraise Umathprimeraisecomposed Umathprimeshiftdrop Umathprimeshiftup \
-Umathprimespaceafter Umathprimevariant Umathprimewidth Umathquad Umathradicaldegreeafter \
-Umathradicaldegreebefore Umathradicaldegreeraise Umathradicalextensibleafter Umathradicalextensiblebefore Umathradicalkern \
-Umathradicalrule Umathradicalvariant Umathradicalvgap Umathruledepth Umathruleheight \
-Umathskeweddelimitertolerance Umathskewedfractionhgap Umathskewedfractionvgap Umathsource Umathspaceafterscript \
-Umathspacebeforescript Umathspacebetweenscript Umathstackdenomdown Umathstacknumup Umathstackvariant \
-Umathstackvgap Umathsubscriptsnap Umathsubscriptvariant Umathsubshiftdistance Umathsubshiftdown \
-Umathsubshiftdrop Umathsubsupshiftdown Umathsubsupvgap Umathsubtopmax Umathsupbottommin \
-Umathsuperscriptsnap Umathsuperscriptvariant Umathsupshiftdistance Umathsupshiftdrop Umathsupshiftup \
+Umathoverdelimitervgap Umathoverlayaccentvariant Umathoverlinevariant Umathphantom Umathprimeraise \
+Umathprimeraisecomposed Umathprimeshiftdrop Umathprimeshiftup Umathprimespaceafter Umathprimevariant \
+Umathquad Umathradicaldegreeafter Umathradicaldegreebefore Umathradicaldegreeraise Umathradicalextensibleafter \
+Umathradicalextensiblebefore Umathradicalkern Umathradicalrule Umathradicalvariant Umathradicalvgap \
+Umathruledepth Umathruleheight Umathskeweddelimitertolerance Umathskewedfractionhgap Umathskewedfractionvgap \
+Umathsource Umathspaceafterscript Umathspacebeforescript Umathspacebetweenscript Umathstackdenomdown \
+Umathstacknumup Umathstackvariant Umathstackvgap Umathsubscriptsnap Umathsubscriptvariant \
+Umathsubshiftdown Umathsubshiftdrop Umathsubsupshiftdown Umathsubsupvgap Umathsubtopmax \
+Umathsupbottommin Umathsuperscriptsnap Umathsuperscriptvariant Umathsupshiftdrop Umathsupshiftup \
 Umathsupsubbottommax Umathtopaccentvariant Umathunderbarkern Umathunderbarrule Umathunderbarvgap \
 Umathunderdelimiterbgap Umathunderdelimitervariant Umathunderdelimitervgap Umathunderlinevariant Umathuseaxis \
 Umathvextensiblevariant Umathvoid Umathxscale Umathyscale Umiddle \
@@ -49,70 +48,81 @@
 Uright Uroot Urooted Uskewed Uskewedwithdelims \
 Ustartdisplaymath Ustartmath Ustartmathmode Ustopdisplaymath Ustopmath \
 Ustopmathmode Ustretched Ustretchedwithdelims Uunderdelimiter Uvextensible \
-additionalpageskip adjustspacing adjustspacingshrink adjustspacingstep adjustspacingstretch \
-advanceby afterassigned aftergrouped aliased aligncontent \
-alignmark alignmentcellsource alignmentwrapsource aligntab allcrampedstyles \
-alldisplaystyles allmainstyles allmathstyles allscriptscriptstyles allscriptstyles \
-allsplitstyles alltextstyles alluncrampedstyles allunsplitstyles amcode \
-associateunit atendoffile atendoffiled atendofgroup atendofgrouped \
-attribute attributedef automaticdiscretionary automatichyphenpenalty automigrationmode \
-autoparagraphmode begincsname beginlocalcontrol beginmathgroup beginsimplegroup \
-boundary boxadapt boxanchor boxanchors boxattribute \
-boxdirection boxfinalize boxfreeze boxgeometry boxlimit \
-boxlimitate boxlimitmode boxorientation boxrepack boxshift \
-boxshrink boxsource boxstretch boxtarget boxtotal \
+additionalpageskip adjacentdemerits adjustspacing adjustspacingshrink adjustspacingstep \
+adjustspacingstretch advanceby afterassigned aftergrouped aliased \
+aligncontent alignmark alignmentcellsource alignmentwrapsource aligntab \
+allcrampedstyles alldisplaystyles allmainstyles allmathstyles allscriptscriptstyles \
+allscriptstyles allsplitstyles alltextstyles alluncrampedstyles allunsplitstyles \
+amcode associateunit atendoffile atendoffiled atendofgroup \
+atendofgrouped attribute attributedef automaticdiscretionary automatichyphenpenalty \
+automigrationmode autoparagraphmode balanceadjdemerits balancebottomskip balanceboundary \
+balancebreakpasses balancechecks balanceemergencyshrink balanceemergencystretch balancefinalpenalties \
+balancelineheight balancelooseness balancepasses balancepenalty balanceshape \
+balanceshapebottomspace balanceshapetopspace balanceshapevsize balancetolerance balancetopskip \
+balancevsize begincsname beginlocalcontrol beginmathgroup beginmvl \
+beginsimplegroup bottomskip boundary boxadapt boxanchor \
+boxanchors boxattribute boxdirection boxfinalize boxfreeze \
+boxgeometry boxinserts boxlimit boxlimitate boxlimitmode \
+boxmigrate boxorientation boxrepack boxshift boxshrink \
+boxsource boxstretch boxsubtype boxtarget boxtotal \
 boxvadjust boxxmove boxxoffset boxymove boxyoffset \
-catcodetable cdef cdefcsname cfcode clearmarks \
-constant constrained copymathatomrule copymathparent copymathspacing \
-crampeddisplaystyle crampedscriptscriptstyle crampedscriptstyle crampedtextstyle csactive \
-csstring currentloopiterator currentloopnesting currentlysetmathstyle currentmarks \
-dbox defcsname deferred detokened detokenized \
-dimensiondef dimexpression directlua discretionaryoptions divideby \
-doubleadjdemerits dpack dsplit edefcsname edivide \
-edivideby efcode emergencyleftskip emergencyrightskip endlocalcontrol \
-endmathgroup endsimplegroup enforced etoks etoksapp \
-etokspre eufactor everybeforepar everymathatom everytab \
-exceptionpenalty expand expandactive expandafterpars expandafterspaces \
-expandcstoken expanded expandedafter expandeddetokenize expandedendless \
-expandedloop expandedrepeat expandparameter expandtoken expandtoks \
-explicitdiscretionary explicithyphenpenalty explicititaliccorrection explicitspace firstvalidlanguage \
-float floatdef floatexpr flushmarks fontcharba \
-fontcharta fontid fontmathcontrol fontspecdef fontspecid \
-fontspecifiedname fontspecifiedsize fontspecscale fontspecslant fontspecweight \
-fontspecxscale fontspecyscale fonttextcontrol forcedleftcorrection forcedrightcorrection \
-formatname frozen futurecsname futuredef futureexpand \
-futureexpandis futureexpandisap gdefcsname givenmathstyle gleaders \
-glet gletcsname glettonothing gluespecdef glyph \
-glyphdatafield glyphoptions glyphscale glyphscriptfield glyphscriptscale \
-glyphscriptscriptscale glyphslant glyphstatefield glyphtextscale glyphweight \
-glyphxoffset glyphxscale glyphxscaled glyphyoffset glyphyscale \
-glyphyscaled gtoksapp gtokspre hccode hjcode \
-hmcode holdingmigrations hpack hpenalty hyphenationmin \
-hyphenationmode ifabsdim ifabsfloat ifabsnum ifarguments \
-ifboolean ifchkdim ifchkdimension ifchknum ifchknumber \
+brokenpenalties catcodetable cccode cdef cdefcsname \
+cfcode clearmarks constant constrained copymathatomrule \
+copymathparent copymathspacing copysplitdiscards crampeddisplaystyle crampedscriptscriptstyle \
+crampedscriptstyle crampedtextstyle csactive csnamestring csstring \
+currentloopiterator currentloopnesting currentlysetmathstyle currentmarks dbox \
+defcsname deferred detokened detokenized dimensiondef \
+dimexperimental dimexpression directlua discretionaryoptions divideby \
+doublepenaltymode dpack dsplit edefcsname edivide \
+edivideby efcode emergencyleftskip emergencyrightskip emptyparagraphmode \
+endlocalcontrol endmathgroup endmvl endsimplegroup enforced \
+etexexprmode etoks etoksapp etokspre eufactor \
+everybeforepar everymathatom everytab exapostrophechar exceptionpenalty \
+expand expandactive expandafterpars expandafterspaces expandcstoken \
+expanded expandedafter expandeddetokenize expandedendless expandedloop \
+expandedrepeat expandparameter expandtoken expandtoks explicitdiscretionary \
+explicithyphenpenalty explicititaliccorrection explicitspace firstvalidlanguage fitnessclasses \
+float floatdef floatexpr flushmarks flushmvl \
+fontcharba fontcharta fontid fontidentifier fontmathcontrol \
+fontspecdef fontspecid fontspecifiedname fontspecifiedsize fontspecscale \
+fontspecslant fontspecweight fontspecxscale fontspecyscale fonttextcontrol \
+forcedleftcorrection forcedrightcorrection formatname frozen futurecsname \
+futuredef futureexpand futureexpandis futureexpandisap gdefcsname \
+givenmathstyle gleaders glet gletcsname glettonothing \
+gluespecdef glyph glyphdatafield glyphoptions glyphscale \
+glyphscriptfield glyphscriptscale glyphscriptscriptscale glyphslant glyphstatefield \
+glyphtextscale glyphweight glyphxoffset glyphxscale glyphxscaled \
+glyphyoffset glyphyscale glyphyscaled gtoksapp gtokspre \
+hbadnessmode hccode hjcode hmcode holdingmigrations \
+hpack hpenalty hyphenationmin hyphenationmode ifabsdim \
+ifabsfloat ifabsnum ifarguments ifboolean ifchkdim \
+ifchkdimension ifchkdimexpr ifchknum ifchknumber ifchknumexpr \
 ifcmpdim ifcmpnum ifcondition ifcramped ifcstok \
 ifdimexpression ifdimval ifempty ifflags iffloat \
 ifhaschar ifhastok ifhastoks ifhasxtoks ifinalignment \
 ifincsname ifinsert ifintervaldim ifintervalfloat ifintervalnum \
-iflastnamedcs ifmathparameter ifmathstyle ifnumexpression ifnumval \
-ifparameter ifparameters ifrelax iftok ifzerodim \
-ifzerofloat ifzeronum ignorearguments ignoredepthcriterion ignorenestedupto \
-ignorepars ignorerest ignoreupto immediate immutable \
+iflastnamedcs iflist ifmathparameter ifmathstyle ifnumexpression \
+ifnumval ifparameter ifparameters ifrelax iftok \
+ifzerodim ifzerofloat ifzeronum ignorearguments ignoredepthcriterion \
+ignorenestedupto ignorepars ignorerest ignoreupto immediate \
+immutable indexedsubprescript indexedsubscript indexedsuperprescript indexedsuperscript \
 indexofcharacter indexofregister inherited initcatcodetable initialpageskip \
 initialtopskip insertbox insertcopy insertdepth insertdistance \
-insertheight insertheights insertlimit insertmaxdepth insertmode \
-insertmultiplier insertpenalty insertprogress insertstorage insertstoring \
-insertunbox insertuncopy insertwidth instance integerdef \
-lastarguments lastatomclass lastboundary lastchkdimension lastchknumber \
-lastleftclass lastloopiterator lastnamedcs lastnodesubtype lastpageextra \
-lastparcontext lastpartrigger lastrightclass leftmarginkern letcharcode \
+insertheight insertheights insertlimit insertlinedepth insertlineheight \
+insertmaxdepth insertmode insertmultiplier insertpenalty insertprogress \
+insertshrink insertstorage insertstoring insertstretch insertunbox \
+insertuncopy insertwidth instance integerdef lastarguments \
+lastatomclass lastboundary lastchkdimension lastchknumber lastleftclass \
+lastloopiterator lastnamedcs lastnodesubtype lastpageextra lastparcontext \
+lastpartrigger lastrightclass leftmarginkern lefttwindemerits letcharcode \
 letcsname letfrozen letmathatomrule letmathparent letmathspacing \
-letprotected lettolastnamedcs lettonothing linebreakcriterion linebreakoptional \
-linebreakpasses linedirection localbrokenpenalty localcontrol localcontrolled \
-localcontrolledendless localcontrolledloop localcontrolledrepeat localinterlinepenalty localleftbox \
-localleftboxbox localmiddlebox localmiddleboxbox localpretolerance localrightbox \
-localrightboxbox localtolerance lpcode luabytecode luabytecodecall \
-luacopyinputnodes luadef luaescapestring luafunction luafunctioncall \
+letprotected lettolastnamedcs lettonothing linebreakchecks linebreakoptional \
+linebreakpasses linedirection localbreakpar localbrokenpenalty localcontrol \
+localcontrolled localcontrolledendless localcontrolledloop localcontrolledrepeat localinterlinepenalty \
+localleftbox localleftboxbox localmiddlebox localmiddleboxbox localpretolerance \
+localrightbox localrightboxbox localtolerance lpcode luaboundary \
+luabytecode luabytecodecall luacopyinputnodes luadef luaescapestring \
+luafunction luafunctioncall luametatexmajorversion luametatexminorversion luametatexrelease \
 luatexbanner luatexrevision luatexversion mathatom mathatomglue \
 mathatomskip mathbackwardpenalties mathbeginclass mathboundary mathcharclass \
 mathcharfam mathcharslot mathcheckfencesmode mathclass mathdictgroup \
@@ -125,46 +135,51 @@
 mathstackstyle mathstyle mathstylefontid mathsurroundmode mathsurroundskip \
 maththreshold mathtolerance meaningasis meaningful meaningfull \
 meaningles meaningless mugluespecdef multiplyby mutable \
-nestedloopiterator noaligned noatomruling noboundary nohrule \
-nomathchar norelax normalizelinemode normalizeparmode noscript \
-nospaces nosubprescript nosubscript nosuperprescript nosuperscript \
-novrule numericscale numericscaled numexpression optionalboundary \
-orelse orphanpenalties orphanpenalty orunless outputbox \
-overloaded overloadmode overshoot pageboundary pagedepth \
-pageexcess pageextragoal pagefistretch pagelastdepth pagelastfilllstretch \
-pagelastfillstretch pagelastfilstretch pagelastfistretch pagelastheight pagelastshrink \
-pagelaststretch pagevsize parametercount parameterdef parameterindex \
-parametermark parametermode parattribute pardirection parfillleftskip \
-parfillrightskip parinitleftskip parinitrightskip parpasses parshapewidth \
-permanent pettymuskip positdef postexhyphenchar posthyphenchar \
-postinlinepenalty postshortinlinepenalty prebinoppenalty predisplaygapfactor preexhyphenchar \
-prehyphenchar preinlinepenalty prerelpenalty preshortinlinepenalty previousloopiterator \
-primescript protecteddetokenize protectedexpandeddetokenize protrudechars protrusionboundary \
-pxdimen quitloop quitloopnow quitvmode rdivide \
-rdivideby realign resetmathspacing restorecatcodetable retained \
-retokenized rightmarginkern rpcode savecatcodetable scaledemwidth \
-scaledexheight scaledextraspace scaledfontcharba scaledfontchardp scaledfontcharht \
-scaledfontcharic scaledfontcharta scaledfontcharwd scaledfontdimen scaledinterwordshrink \
-scaledinterwordspace scaledinterwordstretch scaledmathaxis scaledmathemwidth scaledmathexheight \
-scaledmathstyle scaledslantperpoint scantextokens scriptspaceafterfactor scriptspacebeforefactor \
-scriptspacebetweenfactor semiexpand semiexpanded semiprotected setdefaultmathcodes \
-setfontid setmathatomrule setmathdisplaypostpenalty setmathdisplayprepenalty setmathignore \
-setmathoptions setmathpostpenalty setmathprepenalty setmathspacing shapingpenaltiesmode \
-shapingpenalty shiftedsubprescript shiftedsubscript shiftedsuperprescript shiftedsuperscript \
-shortinlinemaththreshold shortinlineorphanpenalty showcodestack showstack singlelinepenalty \
-snapshotpar spacefactormode spacefactorshrinklimit spacefactorstretchlimit srule \
+mvlcurrentlyactive nestedloopiterator noaligned noatomruling noboundary \
+nohrule nomathchar nooutputboxerror norelax normalizelinemode \
+normalizeparmode noscript nospaces nosubprescript nosubscript \
+nosuperprescript nosuperscript novrule numericscale numericscaled \
+numexperimental numexpression optionalboundary orelse orphanlinefactors \
+orphanpenalties orunless outputbox overloaded overloadmode \
+overshoot pageboundary pageexcess pageextragoal pagefistretch \
+pagelastdepth pagelastfilllstretch pagelastfillstretch pagelastfilstretch pagelastfistretch \
+pagelastheight pagelastshrink pagelaststretch pagevsize parametercount \
+parameterdef parameterindex parametermark parametermode parattribute \
+pardirection parfillleftskip parfillrightskip parinitleftskip parinitrightskip \
+paroptions parpasses parpassesexception parshapewidth permanent \
+pettymuskip positdef postexhyphenchar posthyphenchar postinlinepenalty \
+postshortinlinepenalty prebinoppenalty predisplaygapfactor preexhyphenchar prehyphenchar \
+preinlinepenalty prerelpenalty preshortinlinepenalty previousloopiterator primescript \
+protecteddetokenize protectedexpandeddetokenize protrudechars protrusionboundary pxdimen \
+quitloop quitloopnow quitvmode rdivide rdivideby \
+realign resetlocalboxes resetmathspacing restorecatcodetable retained \
+retokenized rightmarginkern righttwindemerits rpcode savecatcodetable \
+scaledemwidth scaledexheight scaledextraspace scaledfontcharba scaledfontchardp \
+scaledfontcharht scaledfontcharic scaledfontcharta scaledfontcharwd scaledfontdimen \
+scaledinterwordshrink scaledinterwordspace scaledinterwordstretch scaledmathaxis scaledmathemwidth \
+scaledmathexheight scaledmathstyle scaledslantperpoint scantextokens scriptspaceafterfactor \
+scriptspacebeforefactor scriptspacebetweenfactor semiexpand semiexpanded semiprotected \
+setdefaultmathcodes setfontid setmathatomrule setmathdisplaypostpenalty setmathdisplayprepenalty \
+setmathignore setmathoptions setmathpostpenalty setmathprepenalty setmathspacing \
+shapingpenaltiesmode shapingpenalty shortinlinemaththreshold shortinlineorphanpenalty showcodestack \
+showstack singlelinepenalty snapshotpar spacechar spacefactormode \
+spacefactoroverload spacefactorshrinklimit spacefactorstretchlimit specificationdef splitextraheight \
+splitlastdepth splitlastheight splitlastshrink splitlaststretch srule \
 subprescript subscript superprescript superscript supmarkmode \
 swapcsvalues tabsize textdirection thewithoutunit tinymuskip \
-tocharacter todimension tohexadecimal tointeger tokenized \
-toksapp tokspre tolerant tomathstyle toscaled \
-tosparsedimension tosparsescaled tpack tracingadjusts tracingalignments \
-tracingexpressions tracingfullboxes tracinghyphenation tracinginserts tracinglevels \
-tracinglists tracingmarks tracingmath tracingnodes tracingpasses \
-tracingpenalties tsplit uleaders undent unexpandedendless \
-unexpandedloop unexpandedrepeat unhpack unletfrozen unletprotected \
-untraced unvpack variablefam virtualhrule virtualvrule \
-vpack vpenalty wordboundary wrapuppar xdefcsname \
-xtoks xtoksapp xtokspre 
+tocharacter toddlerpenalties todimension tohexadecimal tointeger \
+tokenized toksapp tokspre tolerant tomathstyle \
+toscaled tosparsedimension tosparsescaled tpack tracingadjusts \
+tracingalignments tracingbalancing tracingexpressions tracingfitness tracingfullboxes \
+tracinghyphenation tracinginserts tracinglevels tracinglists tracinglooseness \
+tracingmarks tracingmath tracingmvl tracingnodes tracingorphans \
+tracingpasses tracingpenalties tracingtoddlers tsplit uleaders \
+undent unexpandedendless unexpandedloop unexpandedrepeat unhpack \
+unletfrozen unletprotected untraced unvpack variablefam \
+vbadnessmode vbalance vbalancedbox vbalanceddeinsert vbalanceddiscard \
+vbalancedinsert vbalancedreinsert vbalancedtop virtualhrule virtualvrule \
+vpack vpenalty vsplitchecks wordboundary wrapuppar \
+xdefcsname xtoks xtoksapp xtokspre 
 
 keywordclass.tex.omega=\
 Omegaminorversion Omegarevision Omegaversion 
@@ -236,29 +251,30 @@
 noalign noexpand noindent nolimits nonscript \
 nonstopmode nulldelimiterspace nullfont number omit \
 or outer output outputpenalty over \
-overfullrule overline overwithdelims pagefilllstretch pagefillstretch \
-pagefilstretch pagegoal pageshrink pagestretch pagetotal \
-par parfillskip parindent parshape parskip \
-patterns pausing penalty postdisplaypenalty predisplaypenalty \
-predisplaysize pretolerance prevdepth prevgraf radical \
-raise relax relpenalty right righthyphenmin \
-rightskip romannumeral scriptfont scriptscriptfont scriptscriptstyle \
-scriptspace scriptstyle scrollmode setbox setlanguage \
-sfcode shipout show showbox showboxbreadth \
-showboxdepth showlists shownodedetails showthe skewchar \
-skip skipdef spacefactor spaceskip span \
-splitbotmark splitfirstmark splitmaxdepth splittopskip string \
-tabskip textfont textstyle the thickmuskip \
-thinmuskip time toks toksdef tolerance \
-topmark topskip tracingcommands tracinglostchars tracingmacros \
-tracingonline tracingoutput tracingpages tracingparagraphs tracingrestores \
-tracingstats uccode uchyph unboundary underline \
-unhbox unhcopy unkern unpenalty unskip \
-unvbox unvcopy uppercase vadjust valign \
-vbadness vbox vcenter vfil vfill \
-vfilneg vfuzz vkern vrule vsize \
-vskip vsplit vss vtop wd \
-widowpenalty xdef xleaders xspaceskip year 
+overfullrule overline overwithdelims pagedepth pagefilllstretch \
+pagefillstretch pagefilstretch pagegoal pageshrink pagestretch \
+pagetotal par parfillskip parindent parshape \
+parskip patterns pausing penalty postdisplaypenalty \
+predisplaypenalty predisplaysize pretolerance prevdepth prevgraf \
+radical raise relax relpenalty right \
+righthyphenmin rightskip romannumeral scriptfont scriptscriptfont \
+scriptscriptstyle scriptspace scriptstyle scrollmode setbox \
+setlanguage sfcode shipout show showbox \
+showboxbreadth showboxdepth showlists shownodedetails showthe \
+skewchar skip skipdef spacefactor spaceskip \
+span splitbotmark splitfirstmark splitmaxdepth splittopskip \
+string tabskip textfont textstyle the \
+thickmuskip thinmuskip time toks toksdef \
+tolerance topmark topskip tracingcommands tracingloners \
+tracinglostchars tracingmacros tracingonline tracingoutput tracingpages \
+tracingparagraphs tracingrestores tracingstats uccode uchyph \
+unboundary underline unhbox unhcopy unkern \
+unpenalty unskip unvbox unvcopy uppercase \
+vadjust valign vbadness vbox vcenter \
+vfil vfill vfilneg vfuzz vkern \
+vrule vsize vskip vsplit vss \
+vtop wd widowpenalty xdef xleaders \
+xspaceskip year 
 
 keywordclass.tex.xetex=\
 XeTeXversion 

Modified: trunk/Master/texmf-dist/context/data/scite/context/scite-context-internal.properties
===================================================================
--- trunk/Master/texmf-dist/context/data/scite/context/scite-context-internal.properties	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/context/data/scite/context/scite-context-internal.properties	2025-02-19 22:48:50 UTC (rev 74156)
@@ -1 +1,86 @@
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
\ No newline at end of file
+# Metapost: lexer.metapost.interface.default
+#
+# 0 not used
+# 1 metapost primitives and commands
+# 2 metafun macros
+#
+# first lines of a metapost file are interpreted as follows:
+#
+# % interface=none|metapost|mp|metafun
+
+import context/scite-context-data-metapost
+import context/scite-context-data-metafun
+
+keywordclass.metapost.all=$(keywordclass.metapost.tex) $(keywordclass.metapost.plain) $(keywordclass.metapost.primitives)
+keywordclass.metafun.all=$(keywordclass.metafun.constants) $(keywordclass.metafun.helpers)
+
+keywords.$(file.patterns.metafun)=$(keywordclass.metapost.all)
+keywords2.$(file.patterns.metafun)=$(keywordclass.metapost.all) $(keywordclass.metafun.all)
+
+lexer.metapost.interface.default=2
+lexer.metapost.comment.process=0
+
+lexer.$(file.patterns.metapost)=metapost
+lexer.$(file.patterns.metafun)=metapost
+
+# Metapost: comments
+
+comment.block.metapost=%
+comment.block.at.line.start.metapost=1
+
+# internal lexers
+#
+# 0 all \commands
+# 1 tex etex pdftex omega primitives
+# 2 context nl (when context.properties is loaded)
+# 3 context en (when context.properties is loaded)
+# 4 context de (when context.properties is loaded)
+# 5 context cz (when context.properties is loaded)
+# 6 context it (when context.properties is loaded)
+# 7 context ro (when context.properties is loaded)
+# 8 latex (no keywords yet; will move up)
+#
+# first lines of a tex file are interpreted as follows
+#
+# % interface=all|nl|en|de|cz|it|ro|latex
+
+import context/scite-context-data-tex
+import context/scite-context-data-context
+import context/scite-context-data-interfaces
+
+word.characters.$(file.patterns.context)=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ@!?_\\
+
+keywordclass.context.base=\
+    $(keywordclass.tex.tex) \
+    $(keywordclass.tex.etex) \
+    $(keywordclass.tex.pdftex) \
+    $(keywordclass.tex.aleph) \
+    $(keywordclass.tex.omega) \
+    $(keywordclass.tex.xetex) \
+    $(keywordclass.context.constants) \
+    $(keywordclass.context.helpers)
+
+keywords.$(file.patterns.context)=$(keywordclass.context.base)
+keywords2.$(file.patterns.context)=$(keywordclass.context.base) $(keywordclass.context.nl)
+keywords3.$(file.patterns.context)=$(keywordclass.context.base) $(keywordclass.context.en)
+keywords4.$(file.patterns.context)=$(keywordclass.context.base) $(keywordclass.context.de)
+keywords5.$(file.patterns.context)=$(keywordclass.context.base) $(keywordclass.context.cs)
+keywords6.$(file.patterns.context)=$(keywordclass.context.base) $(keywordclass.context.it)
+keywords7.$(file.patterns.context)=$(keywordclass.context.base) $(keywordclass.context.ro)
+keywords8.$(file.patterns.context)=$(keywordclass.context.base) $(keywordclass.context.fr)
+keywords9.$(file.patterns.context)=$(keywordclass.context.base) $(keywordclass.context.pe)
+
+comment.block.context=%
+comment.block.at.line.start.context=1
+
+lexer.context.interface.default=0
+lexer.context.use.keywords=1
+lexer.context.comment.process=0
+lexer.context.auto.if=1
+
+lexer.$(file.patterns.context)=tex
+lexer.$(file.patterns.tex)=tex
+
+lexer.$(file.patterns.example)=xml
+lexer.$(file.patterns.lua)=lua
+lexer.$(file.patterns.metafun)=metapost

Modified: trunk/Master/texmf-dist/context/data/scite/context/scite-ctx.lua
===================================================================
--- trunk/Master/texmf-dist/context/data/scite/context/scite-ctx.lua	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/context/data/scite/context/scite-ctx.lua	2025-02-19 22:48:50 UTC (rev 74156)
@@ -72,6 +72,8 @@
 
 -- Once lpeg is available I will update the functions below.
 
+os.setlocale("C") -- get rid of the locale: it works bad for comparing as in utflen
+
 local props = props or { }
 
 local byte, char = string.byte, string.char
@@ -88,58 +90,69 @@
 
 local magicstring = rep("<ctx-crlf/>", 2)
 
-local l2 = char(0xC0)
-local l3 = char(0xE0)
-local l4 = char(0xF0)
+local utflen  = utf8 and utf8.len
+local utfchar = utf8 and utf8.char
 
-local function utflen(str)
-    local n = 0
-    local l = 0
-    for s in gmatch(str,".") do
-        if l > 0 then
-            l = l - 1
-        else
-            n = n + 1
-            if s >= l4 then
-                l = 3
-            elseif s >= l3 then
-                l = 2
-            elseif s >= l2 then
-                l = 1
+if not utflen then
+
+    local l2 = char(0xC0)
+    local l3 = char(0xE0)
+    local l4 = char(0xF0)
+
+    utflen = function(str) -- we could use an lpeg instead
+        local n = 0
+        local l = 0
+        for s in gmatch(str,".") do
+            if l > 0 then
+                l = l - 1
+            else
+                n = n + 1
+                if s >= l4 then
+                    l = 3
+                elseif s >= l3 then
+                    l = 2
+                elseif s >= l2 then
+                    l = 1
+                end
             end
         end
+        return n
     end
-    return n
+
 end
 
-local function utfchar(u)
-    if u <= 0x7F then
-        return char(
-            u
-        )
-    elseif u <= 0x7FF then
-        return char (
-            0xC0 | (u >> 6),
-            0x80 | (u & 0x3F)
-        )
-    elseif u <= 0xFFFF then
-        return char (
-            0xE0 | (u >> 12),
-            0x80 | ((u >> 6) & 0x3F),
-            0x80 | (u & 0x3F)
-        )
-    elseif n < 0x110000 then
-        local n = u - 0x10000
-        local r = ((n & 0xF0000) >> 16) + 1
-        return char (
-            0xF0 | (r >> 2),
-            0x80 | ((r & 3) << 4) | ((n & 0x0F000) >> 12),
-            0x80 | ((n & 0x00FC0) >> 6),
-            0x80 | (n & 0x0003F)
-        )
-    else
-        return utfchar(0xFFFD)
+if not utfchar then
+
+    utfchar = function(u)
+        if u <= 0x7F then
+            return char(
+                u
+            )
+        elseif u <= 0x7FF then
+            return char (
+                0xC0 | (u >> 6),
+                0x80 | (u & 0x3F)
+            )
+        elseif u <= 0xFFFF then
+            return char (
+                0xE0 | (u >> 12),
+                0x80 | ((u >> 6) & 0x3F),
+                0x80 | (u & 0x3F)
+            )
+        elseif n < 0x110000 then
+            local n = u - 0x10000
+            local r = ((n & 0xF0000) >> 16) + 1
+            return char (
+                0xF0 | (r >> 2),
+                0x80 | ((r & 3) << 4) | ((n & 0x0F000) >> 12),
+                0x80 | ((n & 0x00FC0) >> 6),
+                0x80 | (n & 0x0003F)
+            )
+        else
+            return utfchar(0xFFFD)
+        end
     end
+
 end
 
 -- helpers: system
@@ -793,7 +806,7 @@
 
         local n, sum = 0, 0
         for s in gmatch(selection,"[%-%+]?[%d%.%,]+") do -- todo: proper lpeg
-            s = gsub(s,",",".")
+            local s = gsub(s,",",".")
             local m = tonumber(s)
             if m then
                 n = n + 1

Modified: trunk/Master/texmf-dist/context/data/scite/context/scite-ctx.properties
===================================================================
--- trunk/Master/texmf-dist/context/data/scite/context/scite-ctx.properties	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/context/data/scite/context/scite-ctx.properties	2025-02-19 22:48:50 UTC (rev 74156)
@@ -91,6 +91,7 @@
     object=seatch_pdf_object
 
 ctx.wraptext.length=80
+#~ ctx.wraptext.length=100
 
 ctx.spellcheck.language=auto
 ctx.spellcheck.wordsize=4

Added: trunk/Master/texmf-dist/doc/context/documents/general/manuals/beyond.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/context/documents/general/manuals/beyond.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/context/documents/general/manuals/beyond.pdf	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/documents/general/manuals/beyond.pdf	2025-02-19 22:48:50 UTC (rev 74156)

Property changes on: trunk/Master/texmf-dist/doc/context/documents/general/manuals/beyond.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/context/documents/general/manuals/canbedone.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/context/documents/general/manuals/canbedone.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/context/documents/general/manuals/canbedone.pdf	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/documents/general/manuals/canbedone.pdf	2025-02-19 22:48:50 UTC (rev 74156)

Property changes on: trunk/Master/texmf-dist/doc/context/documents/general/manuals/canbedone.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/context/documents/general/manuals/columnsets.pdf
===================================================================
(Binary files differ)

Added: trunk/Master/texmf-dist/doc/context/documents/general/manuals/examples-mathmeanings.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/context/documents/general/manuals/examples-mathmeanings.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/context/documents/general/manuals/examples-mathmeanings.pdf	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/documents/general/manuals/examples-mathmeanings.pdf	2025-02-19 22:48:50 UTC (rev 74156)

Property changes on: trunk/Master/texmf-dist/doc/context/documents/general/manuals/examples-mathmeanings.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/context/documents/general/manuals/examples-naturaltables.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/context/documents/general/manuals/examples-naturaltables.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/context/documents/general/manuals/examples-naturaltables.pdf	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/documents/general/manuals/examples-naturaltables.pdf	2025-02-19 22:48:50 UTC (rev 74156)

Property changes on: trunk/Master/texmf-dist/doc/context/documents/general/manuals/examples-naturaltables.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/context/documents/general/manuals/lowlevel-balancing.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/context/documents/general/manuals/lowlevel-balancing.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/context/documents/general/manuals/lowlevel-balancing.pdf	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/documents/general/manuals/lowlevel-balancing.pdf	2025-02-19 22:48:50 UTC (rev 74156)

Property changes on: trunk/Master/texmf-dist/doc/context/documents/general/manuals/lowlevel-balancing.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/context/documents/general/manuals/lowlevel-characters.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/context/documents/general/manuals/lowlevel-conditionals.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/context/documents/general/manuals/lowlevel-paragraphs.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/context/documents/general/manuals/lowlevel.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/context/documents/general/manuals/luametafun.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/context/documents/general/manuals/luametatex.pdf
===================================================================
(Binary files differ)

Added: trunk/Master/texmf-dist/doc/context/documents/general/manuals/mathincontext-paper.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/context/documents/general/manuals/mathincontext-paper.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/context/documents/general/manuals/mathincontext-paper.pdf	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/documents/general/manuals/mathincontext-paper.pdf	2025-02-19 22:48:50 UTC (rev 74156)

Property changes on: trunk/Master/texmf-dist/doc/context/documents/general/manuals/mathincontext-paper.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/context/documents/general/manuals/mathincontext-screen.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/context/documents/general/manuals/mathincontext-screen.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/context/documents/general/manuals/mathincontext-screen.pdf	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/documents/general/manuals/mathincontext-screen.pdf	2025-02-19 22:48:50 UTC (rev 74156)

Property changes on: trunk/Master/texmf-dist/doc/context/documents/general/manuals/mathincontext-screen.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/context/documents/general/manuals/pdfmerge.pdf
===================================================================
(Binary files differ)

Deleted: trunk/Master/texmf-dist/doc/context/documents/general/manuals/primitives.pdf
===================================================================
(Binary files differ)

Added: trunk/Master/texmf-dist/doc/context/documents/general/manuals/tagging.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/context/documents/general/manuals/tagging.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/context/documents/general/manuals/tagging.pdf	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/documents/general/manuals/tagging.pdf	2025-02-19 22:48:50 UTC (rev 74156)

Property changes on: trunk/Master/texmf-dist/doc/context/documents/general/manuals/tagging.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/context/documents/general/qrcs/setup-mapping-de.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/context/documents/general/qrcs/setup-mapping-en.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/context/documents/general/qrcs/setup-mapping-fr.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/context/documents/general/qrcs/setup-mapping-it.pdf
===================================================================
(Binary files differ)

Added: trunk/Master/texmf-dist/doc/context/presentations/context/2022/context-2022-style.tex
===================================================================
--- trunk/Master/texmf-dist/doc/context/presentations/context/2022/context-2022-style.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/context/presentations/context/2022/context-2022-style.tex	2025-02-19 22:48:50 UTC (rev 74156)
@@ -0,0 +1,19 @@
+\startenvironment context-2022-style
+
+\usemodule[present-boring,abbreviations-logos]
+
+\definecolor[maincolor] [h=0057b7]
+\definecolor[extracolor][h=ffd700]
+
+\setupbottom
+  [color=darkcolor]
+
+\setupbodyfont
+  [iwona,14.4pt]
+
+\definehighlight
+  [notabene]
+  [style=bold,
+   color=extracolor]
+
+\stopenvironment


Property changes on: trunk/Master/texmf-dist/doc/context/presentations/context/2022/context-2022-style.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/context/presentations/context/2024/context-2024-accessibility.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/context/presentations/context/2024/context-2024-accessibility.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/context/presentations/context/2024/context-2024-accessibility.pdf	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/presentations/context/2024/context-2024-accessibility.pdf	2025-02-19 22:48:50 UTC (rev 74156)

Property changes on: trunk/Master/texmf-dist/doc/context/presentations/context/2024/context-2024-accessibility.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/context/presentations/context/2024/context-2024-accessibility.tex
===================================================================
--- trunk/Master/texmf-dist/doc/context/presentations/context/2024/context-2024-accessibility.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/context/presentations/context/2024/context-2024-accessibility.tex	2025-02-19 22:48:50 UTC (rev 74156)
@@ -0,0 +1,811 @@
+% language=us
+
+% \setupbackend[format=pdf/ua-2]
+% \setuptagging[state=start]
+% \enabledirectives[math.extensibles=both] % todo, when tagging !
+
+% \nopdfcompression
+
+% \enabletrackers[structures.tags.blobs]
+% \enabletrackers[structures.tags]
+% \enabletrackers[structures.tags.internals]
+% \enabletrackers[structures.tags.showtree]
+
+% \unprotect \pushoverloadmode
+% \protect
+
+\environment context-2024-style
+
+\setupbodyfont[small]
+
+\setuptyping
+  [style=\switchtobodyfont[7pt,tt]]
+
+\definelayer
+  [extratext]
+  [preset=rightbottom,
+   height=\textheight,
+   width=\textwidth]
+
+\setupbackgrounds
+  [text]
+  [background=extratext]
+
+% \definehighlight[notabene][style=bf]
+\definehighlight[notabene][style=\glyphweight100\underbar]
+
+\setuptyping
+  [align=hangright,
+   keeptogether=paragraph,
+   numbering=]
+
+% In this variant we use the Ukraine flag colors as I did for all talks at ConTeXt meetings
+% since RU invaded UA.
+
+\startdocument
+  [title={Accessibility},
+ % banner={how to make sense},
+   banner={what it is about},
+%  location={bachotex\enspace {\bf 2024}\enspace meeting}]
+   location={context\enspace {\bf 2024}\enspace meeting}]
+
+\starttitle[title=What is accessibility]
+
+Accessible \PDF\ documents are a somewhat hot topic (for a while). Here are some
+definitions:
+
+\startitemize
+\startitem
+    \notabene {Greenwich:} An accessible document is a document created to be as
+    easily readable by a low vision or non-sighted reader as a sighted reader.
+\stopitem
+\startitem
+    \notabene {Harvard:} Accessible documents are easier to understand and read
+    for all of your users, not just users with disabilities.
+\stopitem
+\startitem
+    \notabene {University of California San Francisco:} An accessible digital
+    document is well-structured, providing visual information in a non-visual
+    format.
+\stopitem
+\startitem
+    \notabene {Carlton:} Accessible documents provide all text and other elements
+    in an accessible format, so that everyone can access the information in the
+    documents in some manner.
+\stopitem
+\stopitemize
+
+Such definitions are often followed by a similar list of suggestions, likely taken
+from some (government) directive.
+
+\vfilll
+
+{\em Note: This talk is a variant on the one done at Bacho\TeX\ 2024 but most examples
+are the same!}
+
+
+\stoptitle
+
+\starttitle[title=What is tagging]
+
+Tagging adds information to a \PDF\ file so that:
+
+\startitemize
+\startitem
+    \notabene {content can be extracted}: apart from basic copying we're not
+    interested in this
+\stopitem
+\startitem
+    \notabene {the text can reflow:} use an other format is that is needed
+\stopitem
+\startitem
+    \notabene {text can be spoken:} to some extend that can be useful
+\stopitem
+\stopitemize
+
+But it comes a at cost:
+
+\startitemize
+\startitem
+    There are \notabene {no real good free tools} that handle it and validation, fixing,
+    standards with respect to \PDF\ has always been a somewhat commercial enterprise.
+\stopitem
+\startitem
+    The standard is a \notabene {confusing}, and interpretation gets debated: it
+    looks like little research went ahead of it.
+\stopitem
+\startitem
+    So we can best just start from \notabene {common sense and usage} and also
+    realize that in the end (future) demands are different anyway (compare book
+    printing).
+\stopitem
+\startitem
+    Nevertheless, we always end up with a \notabene {bloated} \PDF\ file, which
+    kind of contradicts other efforts to be lean and mean.
+\stopitem
+\stopitemize
+
+\stoptitle
+
+\starttitle[title=And so \unknown]
+
+\startitemize
+\startitem
+    We basically end up implementing a feature for the sake of the feature that might
+    be useful in the \notabene {future}.
+\stopitem
+\startitem
+    And that in the end might not work out as intended as it might be \notabene
+    {suboptimal}.
+\stopitem
+\startitem
+    And we can not check its usability so it's mostly about \notabene {conformance}
+    and playing safe.
+\stopitem
+\startitem
+    Also, we operate in a fast moving world when it comes to demands, presentation
+    models, usage and maybe coming technologies that might make this \notabene
+    {obsolete}.
+\stopitem
+\stopitemize
+
+\stoptitle
+
+\starttitle[title=Examples]
+
+So what are the consequences of tagging for a \PDF\ file? Let's have a look at
+some simple examples.
+
+\blank[2*big]
+
+\notabene {untagged:} test: \inframed[frame=closed]{$x^2 = 4$} !
+
+\blank[2*big]
+
+\notabene {tagged:} $x^2 = 4$
+
+\blank[2*big]
+
+\notabene {tagged:} test: $x^2 = 4$
+
+\blank[2*big]
+
+\notabene {tagged:} test: \inframed[frame=closed]{$x^2 = 4$} !
+
+\page
+
+% \setmarking[title]{test: \inframed[frame=closed]{$x^2 = 4$} !}
+
+\setlayerframed[extratext][frame=off]{test: \inframed[frame=closed]{$x^2 = 4$} !}
+
+\starttyping
+stream
+0 g 0 G
+BT
+/F1 10 Tf
+1.195517 0 0 1.195517 3.941792 7.979264 Tm [<000100020003000100040005>] TJ
+/F2 10 Tf
+1.195517 0 0 1.195517 33.563574 7.979264 Tm [<0001>] TJ
+0.836858 0 0 0.836858 40.398174 12.914036 Tm [<0002>] TJ
+1.195517 0 0 1.195517 48.485127 7.979264 Tm [<0003>-278<0004>] TJ
+ET
+q
+1 0 0 1 32.076871 2.455088 cm
+[] 0 d 0 J 0.3985 w 0 0 36.486178 17.507437 re S
+Q
+BT
+/F1 10 Tf
+1.195517 0 0 1.195517 72.741182 7.979264 Tm [<0006>] TJ
+ET
+0 g 0 G
+endstream
+\stoptyping
+
+% \startTEXpage[offset=.5ts]
+%     test: \inframed[frame=closed]{$x^2 = 4$} !
+% \stopTEXpage
+
+\page
+
+% \setmarking[title]{$x^2 = 4$}
+\setlayerframed[extratext][frame=off]{$x^2 = 4$}
+
+\starttyping
+stream
+0 g 0 G
+/math <</MCID 1>> BDC
+BT
+/F1 10 Tf
+1.195517 0 0 1.195517 3.941792 4.073226 Tm [<0001>] TJ
+0.836858 0 0 0.836858 10.776392 9.007999 Tm [<0002>] TJ
+1.195517 0 0 1.195517 18.863344 4.073226 Tm [<0003>-278<0004>] TJ
+ET
+EMC
+0 g 0 G
+endstream
+\stoptyping
+
+% \startTEXpage[offset=.5ts]
+%     $x^2 = 4$
+% \stopTEXpage
+
+\page
+
+% \setmarking[title]{test: $x^2 = 4$}
+\setlayerframed[extratext][frame=off]{test: $x^2 = 4$}
+
+\starttyping
+stream
+0 g 0 G
+/documentpart <</MCID 1>> BDC
+BT
+/F1 10 Tf
+1.195517 0 0 1.195517 3.941792 4.073226 Tm [<00010002000300010004>] TJ
+ET
+EMC
+/math <</MCID 2>> BDC
+BT
+/F2 10 Tf
+1.195517 0 0 1.195517 31.877621 4.073226 Tm [<0001>] TJ
+0.836858 0 0 0.836858 38.712221 9.007999 Tm [<0002>] TJ
+1.195517 0 0 1.195517 46.799174 4.073226 Tm [<0003>-278<0004>] TJ
+ET
+EMC
+0 g 0 G
+endstream
+\stoptyping
+
+% \startTEXpage[offset=.5ts]
+%     test: $x^2 = 4$
+% \stopTEXpage
+
+\page
+
+% \setmarking[title]{test: \inframed[frame=closed]{$x^2 = 4$} !}
+\setlayerframed[extratext][frame=off]{test: \inframed[frame=closed]{$x^2 = 4$} !}
+
+\starttyping
+stream
+0 g 0 G
+/documentpart <</MCID 1>> BDC
+BT
+/F1 10 Tf
+1.195517 0 0 1.195517 3.941792 7.979264 Tm [<00010002000300010004>] TJ
+ET
+EMC
+/math <</MCID 2>> BDC
+BT
+/F2 10 Tf
+1.195517 0 0 1.195517 33.563574 7.979264 Tm [<0001>] TJ
+0.836858 0 0 0.836858 40.398174 12.914036 Tm [<0002>] TJ
+1.195517 0 0 1.195517 48.485127 7.979264 Tm [<0003>-278<0004>] TJ
+ET
+EMC
+/Artifact BMC
+q
+1 0 0 1 32.076871 2.455088 cm
+[] 0 d 0 J 0.3985 w 0 0 36.486178 17.507437 re S
+Q
+EMC
+/documentpart <</MCID 3>> BDC
+BT
+/F1 10 Tf
+1.195517 0 0 1.195517 72.741182 7.979264 Tm [<0005>] TJ
+ET
+EMC
+0 g 0 G
+endstream
+\stoptyping
+
+% \startTEXpage[offset=.5ts]
+%     test: \inframed[frame=closed]{$x^2 = 4$} !
+% \stopTEXpage
+
+\page
+
+We need a lot so tracing options to figure out possible issues, like:
+
+\starttyping
+backend         > tags > begin page
+backend         > tags >
+backend         > tags > P    11 document>1 documentpart>1 navigationpage>1 : 1
+backend         > tags > T     2 document>1 documentpart>1 : test:
+backend         > tags > T     3 document>1 documentpart>1 math>1 : 𝑥[2] = 4
+backend         > tags >   -----
+backend         > tags > T     2 document>1 documentpart>1 : !
+backend         > tags >
+backend         > tags > end page
+backend         > tags >
+
+backend         > tags >     1    1  document>1 (content)
+backend         > tags >     2    1  document>1 documentpart>1 (content)
+backend         > tags >     3    1  document>1 documentpart>1 navigationpage>1 (content)
+backend         > tags >     4    1  document>1 documentpart>1 math>1 (content)
+\stoptyping
+
+But we also have visual clues: tag labels, suspects, etc.
+
+\stoptitle
+
+\starttitle[title={Checking if we're okay}]
+
+\startitemize
+\startitem
+    We can look at the file and if it opens in viewers we know that we didn't
+    mess up too badly. Looking at the \PDF\ in an editor also works.
+\stopitem
+\startitem
+    The VeraPDF checker can be used but it's not always reliable. The order of
+    reported issues can differ per run and when you fixed the last issue,
+    suddenly a new one can be shown. (There are two parsers to choose from and
+    results can differ.)
+\stopitem
+\startitem
+    The PAC 2021 checker is more powerful but hasn't been updated to handle \PDF\
+    2.0 (we can hack around that) an dit doesn't handle the role maps. But it has
+    a nice preview, shows a tag tree, etc. It's a bit slow in analyzing.
+\stopitem
+\startitem
+    We're only interested in the file being okay because there is not way to know
+    what is needed. We don't relate to pseudo \HTML\ but users can do that if
+    they want. We don't want to cook up something sub-optimal.
+\stopitem
+\startitem
+    As long as we add meaningful tags, we can expect future document analyzer to do
+    a decent job, after all a \quote {section} says what it is.
+\stopitem
+\stopitemize
+
+\stoptitle
+
+\starttitle[title={Structure, meaning and rolemaps (1)}]
+
+\startlinecorrection
+    \externalfigure[kingjames-001.png][height=.75th]
+\stoplinecorrection
+
+\stoptitle
+
+
+\starttitle[title={Structure, meaning and rolemaps (2)}]
+
+\startlinecorrection
+    \externalfigure[kingjames-002.png][height=.75th]
+\stoplinecorrection
+
+\stoptitle
+
+\starttitle[title={Structure, meaning and rolemaps (3)}]
+
+Let's get an idea what we're dealing with. You can forget about it after seeing
+it. The real content is this, when untagged we also have more efficient text
+streams (here between \type {<>}):
+
+\starttyping
+stream
+0 g 0 G
+BT
+/F1 10 Tf
+0.996264 0 0 0.996264 549.598217 791.184973 Tm [<0001>] TJ
+2.066252 0 0 2.066252 42.097049 741.603508 Tm [<00020003000400050006000700080009000A000B000C>] TJ
+/F2 10 Tf
+0.996264 0 0 0.996264 42.097049 710.081548 Tm [<000100020003000400050006000700080009000A0006000B0008>] TJ
+0.996264 0 0 0.996264 548.192356 710.081548 Tm [<000C>] TJ
+0.996264 0 0 0.996264 42.097049 689.160004 Tm [<000D0006000E000400050006000700080009000A0006000B0008>] TJ
+0.996264 0 0 0.996264 541.114406 689.160004 Tm [<000F00100010>] TJ
+ET
+0 g 0 G
+endstream
+\stoptyping
+
+\page
+
+When we tag we get entries like this in the page stream:
+
+\startcolumns[distance=1cm]
+\starttyping
+0 g 0 G
+/Artifact BMC
+BT
+/F1 10 Tf
+0.996264 0 0 0.996264 549.598217 791.184973 Tm [<0001>] TJ
+ET
+EMC
+/documentpart <</MCID 1>> BDC
+BT
+/F1 10 Tf
+2.066252 0 0 2.066252 42.097049 741.603508 Tm [<00020003000400050006000700080009000A000B000C>] TJ
+ET
+EMC
+/link <</MCID 2>> BDC
+EMC
+/listcontent <</MCID 3>> BDC
+BT
+/F2 10 Tf
+0.996264 0 0 0.996264 42.097049 710.081548 Tm [<000100020003000400050006000700080009000A0006000B0008>] TJ
+ET
+EMC
+/listpage <</MCID 4>> BDC
+BT
+/F2 10 Tf
+0.996264 0 0 0.996264 548.192356 710.081548 Tm [<000C>] TJ
+ET
+EMC
+/link <</MCID 5>> BDC
+EMC
+/listcontent <</MCID 6>> BDC
+BT
+/F2 10 Tf
+0.996264 0 0 0.996264 42.097049 689.160004 Tm [<000D0006000E000400050006000700080009000A0006000B0008>] TJ
+ET
+EMC
+/listpage <</MCID 7>> BDC
+BT
+/F2 10 Tf
+0.996264 0 0 0.996264 541.114406 689.160004 Tm [<000F00100010>] TJ
+ET
+EMC
+0 g 0 G
+endstream
+\stoptyping
+\stopcolumns
+
+\page
+
+The \type {/MCID 3} points into an array related to the page. Let's start at
+the top parent (\type {676}):
+
+\starttyping
+676 0 obj
+    <<
+        /K          103359 0 R
+        /Namespaces [ 678 0 R 681 0 R 682 0 R ]
+        /ParentTree 677 0 R
+        /Type       /StructTreeRoot
+    >>
+endobj
+\stoptyping
+
+The top level kids array (103359) is
+
+\starttyping
+103359 0 obj
+[ 683 0 R ]
+endobj
+\stoptyping
+
+The first entry (\type {683}) brings us to the document level
+
+\starttyping
+683 0 obj
+    <<
+        /K  [ 684 0 R ]
+        /NS 678 0 R
+        /P  676 0 R
+        /Pg 1 0 R
+        /S  /document
+    >>
+endobj
+\stoptyping
+
+\page
+
+This element has only one kid (\type {684}) and sits in a name space (\type
+{678}). The parent is (\type {676}) a way to get back, the page object is also
+references (\type {1}).
+
+\starttyping
+678 0 obj
+    <<
+        /LMTXNameSpace /context
+        /NS            <feff.....>>
+        /RoleMapNS     103357 0 R
+        /Type          /Namespace
+    >>
+endobj
+\stoptyping
+
+The name space points to a role map (\type {103357}, we have many objects here)
+so we can use nice names as we like. We map most on the default \type {NonStruct}
+as the regular subset makes little sense for us.
+
+\starttyping
+103357 0 obj
+    <<
+        /document     [ /Document  681 0 R ]
+        /documentpart [ /NonStruct 681 0 R ]
+        /link         [ /Link      681 0 R ]
+        /list         [ /NonStruct 681 0 R ]
+        /listcontent  [ /NonStruct 681 0 R ]
+        /listitem     [ /NonStruct 681 0 R ]
+        ...
+    >>
+endobj
+\stoptyping
+
+\page
+
+The mapped ones come from, a default set defines in (\type {681}):
+
+\starttyping
+681 0 obj
+    <<
+        /LMTXNameSpace /ua2
+        /NS            <feff....>
+        /Type          /Namespace
+    >>
+endobj
+\stoptyping
+
+Back to the mapping from elements on the page to real ones:
+
+\starttyping
+677 0 obj
+<<
+    /Nums [
+          0 [ 685 0 R 684 0 R 688 0 R 689 0 R 690 0 R 692 0 R 693 0 R 694 0 R ]
+          1 [ 704 0 R ]
+          2 [ .... ]
+        ...
+        738 77343 0 R
+        739 77347 0 R
+    ]
+>>
+endobj
+\stoptyping
+
+\page
+
+The second element on the page (\type {684}) is:
+
+\starttyping
+684 0 obj
+<<
+    /K [ 685 0 R 1 686 0 R ... ]
+    /NS 678 0 R
+    /P 683 0 R
+    /Pg 1 0 R
+    /S /documentpart
+>>
+endobj
+\stoptyping
+
+The kids can be followed (from \type {676}) to (\type {684}):
+
+\starttyping
+684 0 obj
+<<
+    /K [ 685 0 R 1 686 0 R .... ]
+    /NS 678 0 R
+    /P 683 0 R
+    /Pg 1 0 R
+    /S /documentpart
+>>
+endobj
+\stoptyping
+
+\page
+
+We go all the way down to:
+
+\starttyping
+686 0 obj
+<< /K [ 687 0 R 691 0 R ] /NS 678 0 R /P 684 0 R /Pg 1 0 R /S /list >>
+endobj
+687 0 obj
+<< /K [ 688 0 R 689 0 R 690 0 R ] /NS 678 0 R /P 686 0 R /Pg 1 0 R /S /listitem /T (chapter) >>
+endobj
+688 0 obj
+<< /K [ 2 ] /NS 678 0 R /P 687 0 R /Pg 1 0 R /S /link >>
+endobj
+689 0 obj
+<< /K [ 3 ] /NS 678 0 R /P 687 0 R /Pg 1 0 R /S /listcontent >>
+endobj
+690 0 obj
+<< /K [ 4 ] /NS 678 0 R /P 687 0 R /Pg 1 0 R /S /listpage >>
+endobj
+691 0 obj
+<< /K [ 692 0 R 693 0 R 694 0 R ] /NS 678 0 R /P 686 0 R /Pg 1 0 R /S /listitem /T (chapter) >>
+endobj
+\stoptyping
+
+And so on. Keep in mind that in the page stream we see the endpoints and in order
+to see where they come from one has to follow the chain back!
+
+\stoptitle
+
+\starttitle[title=Annoyances]
+
+\startitemize
+\startitem
+    One has to mark everything. There is no default to \notabene {artifact},
+    which would save a lot of (time and) file size as well as checking.
+\stopitem
+\startitem
+    \UNICODE\ lacks a code point that represents \quotation {no character, just
+    ignore me when copying or speaking} so one has to mark \notabene {private
+    slots} as artifact which is pain and dirties the backend.
+\stopitem
+\startitem
+    There are no code points that can \notabene {help the speech engine}, like
+    pauses. One can argue that this should not be in \UNICODE\ but we do have
+    linguistic and plenty odd symbols anyway.
+\stopitem
+\startitem
+    Often a nice looking and educational rich document has \notabene {more than
+    just text}, otherwise one could as well emulate a typewriter. It's also about
+    motivating and attraction. So there might be hard to catch artifacts.
+\stopitem
+\startitem
+    Validating can be \notabene {fragile}, so one never knows for sure if what is
+    okay or bad today is bad or okay tomorrow. But we can decide to ignore some
+    warnings, especially when it hard to explain why it matters.
+\stopitem
+\startitem
+    There are some \notabene {weird demands}. Why should for instance a hyperlink
+    mark as artifact still resolve to a destination. Also, one assumes viewers to
+    to not adapt so there are redundant entries (for no real reason like
+    \type {/D} and  \type {/SD} in destinations).
+\stopitem
+\stopitemize
+
+\starttitle[title=Math]
+
+\startitemize
+\startitem
+    Math tagging is somewhat complex and often \notabene {domain dependent} the
+    current state made us decide to just do what we think is best.
+\stopitem
+\startitem
+    As with math fonts it's not the \TEX\ community that drives it (although of
+    course there has been early adoption and feedback, e.g. by Ross Moore). We just
+    have to \notabene {follow the trends}.
+\stopitem
+\startitem
+    We \notabene {always} had some kind of support for tagged math, not that
+    there were applications out there that we could check it with.
+\stopitem
+\startitem
+    At EuroBacho\TEX\ 2017 there has been \notabene {ambitious plans} for future
+    projects with respect to tagged \PDF\ (mentioning involvement of publishers
+    and substantial funding) but if that happens it is outside the \CONTEXT\
+    community scope.
+\stopitem
+\startitem
+    So \unknown\ we just \notabene {go our own way} and \quote {ritmik} is what
+    we came up with, which actually is a side track of our math upgrading
+    project.
+\stopitem
+
+\vfilll % blank[3*big]
+
+\startitem
+    Sidenote: we do the same with bibliographies but that is much simpler:
+    \notabene {serialize} citations and embed \BIBTEX\ data.
+\stopitem
+\stopitemize
+
+\stoptitle
+
+\starttitle[title=How]
+
+\startitemize
+\startitem
+    We decided to go for what we call \quotation {meaningful math}: instead of
+    relying on unknown technology we make sure that when gets \quote {read out}
+    reflects our intentions: we provide \notabene {serialized math} in addition to
+    \notabene {embedded \MATHML}.
+\stopitem
+\startitem
+    We have \notabene {quite some structure} in \CONTEXT\ and math is no
+    exception. When we add features we normally also take care of tagging.
+\stopitem
+\startitem
+    We already had a way to extract \MATHML\ from formulas, but with
+    (presentation) \MATHML\ being \notabene {unstable} (dropping features,
+    support comes and goes) we have to adapt and anticipate the worst.
+\stopitem
+\startitem
+    We can now actually make use of the already present \notabene {dictionary}
+    mechanisms and carry a bit more information around with symbols. This saves
+    some extra processing and serves serializing well.
+\stopitem
+\startitem
+    We could actually remove some rendering related output (alignments using
+    tables) by \notabene {more natural} solutions.
+\stopitem
+\startitem
+    But \unknown\ we need some information from \notabene {users}, like usage
+    patterns, specific support for \quote {fields}, and translations.
+\stopitem
+\startitem
+    We don't want to adapt the engine because it's very \notabene {macro package
+    dependent} and it's also more flexible.
+\stopitem
+\stopitemize
+
+\stoptitle
+
+\starttitle[title=Tests]
+
+\startitemize
+\startitem
+    A university \notabene {math book} of some 300 pages with 3500 formulas, and a lot
+    of (educational) structure.
+\stopitem
+\startitem
+    The upcoming \notabene {math manual} with many examples, fancy features,
+    specific control, symbols, different structures, etc.
+\stopitem
+\startitem
+    For performance tests we use relatively simple \notabene {text only}
+    documents, like the King James bible, novels from the Gutenberg project, etc.
+\stopitem
+\startitem
+    For meaningful math we have a (growing) document that shows \notabene
+    {examples in various languages} as well as \MATHML\ from \CONTEXT\ input.
+\stopitem
+\stopitemize
+
+\blank[2*big]
+
+We can show some examples.
+
+\stoptitle
+
+\starttitle[title={Impact: King James Bible}]
+
+from xml, two columns, using unifraktur:
+
+\starttabulate[|c|c|c|c|c|c|c|c|]
+\BC fitclasses \BC passes  \BC tagging \BC pages \BC runtime \BC uncompressed \BC runtime \BC compressed \NC \NR
+\HL
+\NC default    \NC         \NC no      \NC 670   \NC 14.2    \NC              \NC         \NC            \NC \NR
+\NC default    \NC quality \NC no      \NC 670   \NC 14.2    \NC              \NC         \NC            \NC \NR
+\NC granular   \NC quality \NC no      \NC 672   \NC 14.3    \NC 24.999       \NC 14.5    \NC 4.990      \NC \NR
+\NC granular   \NC quality \NC yes     \NC 672   \NC 17.5    \NC 39.660       \NC 18.4    \NC 7.134      \NC \NR
+\stoptabulate
+
+\stoptitle
+
+\starttitle[title={Impact: Math in \CONTEXT}]
+
+all bells and whistles, interactive, screen, menus, many math fonts:
+
+\starttabulate[|c|c|c|c|c|c|]
+\BC tagging \BC pages \BC runtime \BC uncompressed \BC runtime \BC compressed \NC \NR
+\HL
+\NC no      \NC 433   \NC 15.8    \NC 43.467       \NC 15.9    \NC 7.204      \NC \NR
+\NC yes     \NC 433   \NC 18.5    \NC 52.842       \NC 18.7    \NC 8.648      \NC \NR
+\stoptabulate
+
+\stoptitle
+
+\starttitle[title={Impact: Infinitesimalkalkyl}]
+
+a lot of structure, granular, passes, interactive, thousands of formulas, graphics:
+
+\starttabulate[|c|c|c|c|c|c|c|]
+\BC synctex \BC tagging \BC pages \BC runtime \BC uncompressed \BC runtime \BC compressed \NC \NR
+\HL
+\NC no      \BC no      \NC 292   \NC         \NC              \NC  9.3    \NC 3.645      \NC \NR
+\NC yes     \BC no      \NC 292   \NC  9.7    \NC 17.379       \NC  9.8    \NC 3.645      \NC \NR
+\NC yes     \BC yes     \NC 292   \NC 15.3    \NC 27.652       \NC 15.8    \NC 5.815      \NC \NR
+\stoptabulate
+
+% 15.0
+
+\vfill
+
+\startlines[style=\small\small\small\tt,after=]
+April 25, 2024
+Dell 7220 Laptop: Intel(R) Xeon(R) CPU E3-1505M v6 @ 3.00GHz, 48.0 GB, 2TB Samsung Pro SSD
+Windows 10 Pro for Workstations
+LuaMetaTeX 2.11.02 / 20240425 (MingW64)
+\stoplines
+
+\stoptitle
+
+\stopdocument
+
+% todo: user meaning


Property changes on: trunk/Master/texmf-dist/doc/context/presentations/context/2024/context-2024-accessibility.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/context/presentations/context/2024/context-2024-compactfonts.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/context/presentations/context/2024/context-2024-compactfonts.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/context/presentations/context/2024/context-2024-compactfonts.pdf	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/presentations/context/2024/context-2024-compactfonts.pdf	2025-02-19 22:48:50 UTC (rev 74156)

Property changes on: trunk/Master/texmf-dist/doc/context/presentations/context/2024/context-2024-compactfonts.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/context/presentations/context/2024/context-2024-compactfonts.tex
===================================================================
--- trunk/Master/texmf-dist/doc/context/presentations/context/2024/context-2024-compactfonts.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/context/presentations/context/2024/context-2024-compactfonts.tex	2025-02-19 22:48:50 UTC (rev 74156)
@@ -0,0 +1,313 @@
+% language=us
+
+\environment context-2024-style
+
+\startdocument
+  [title={compact fonts},
+   banner={what are the advantages},
+   location={context\enspace {\bf 2024}\enspace meeting}]
+
+\starttitle[title=Before we had \MKII]
+
+\startitemize
+\startitem It all started with rather plain \type {\font} definitions. \stopitem
+\startitem More than just fonts need to be \quote {switched}. \stopitem
+\startitem So body font switching is wrapped into macros. \stopitem
+\startitem Often in \MKII\  more fonts get loaded than are needed. \stopitem
+\startitem This comes cheap when using eight bit fonts. \stopitem
+\startitem Design sizes complicate matters. \stopitem
+\stopitemize
+
+\stoptitle
+
+\starttitle[title=The \MKII\ font model]
+
+\startitemize
+\startitem Eight bit fonts have a limited coverage. \stopitem
+\startitem Hyphenation relates to font encoding. \stopitem
+\startitem We need to handle font and input encodings. \stopitem
+\startitem Using small caps and|/|or old style numerals demand a different font. \stopitem
+\startitem This resulted in a multi|-|dimensional system. \stopitem
+\startitem Design sizes have been complemented by a simpler model. \stopitem
+\startitem At some point we had to support \XETEX, so support for features was introduced. \stopitem
+\startitem Loading fonts is delayed when possible so that we can mix with little overhead. \stopitem
+\stopitemize
+
+\stoptitle
+
+\starttitle[title=The \MKIV\ font model]
+
+\startitemize
+\startitem Font loading is delegated to \LUA, we could not support Oriental \TEX\ otherwise. \stopitem
+\startitem Dealing with font features is also up to \LUA. \stopitem
+\startitem More dynamic par building experiments demanded interplay with fonts. \stopitem
+\startitem Fonts are often large so there is more aggressive sharing and caching. \stopitem
+\startitem Runtime support for virtual fonts is integrated. \stopitem
+\startitem Way more trickery is possible because we have full access. \stopitem
+\startitem Users can tweak and extend fonts as they wish (given available glyphs). \stopitem
+\startitem Features (like small caps) can be applied dynamically. \stopitem
+\startitem Variable and color fonts were supported as soon as they showed up. \stopitem
+\stopitemize
+
+\stoptitle
+
+\starttitle[title=The \LMTX\ font model]
+
+\startitemize
+    \startitem
+        We assume \LUAMETATEX\ to be used.
+    \stopitem
+    \startitem
+        We have better control over how the backend deals with fonts. This
+        was prototyped in \MKIV\ but later removed.
+    \stopitem
+    \startitem
+        To a large extend the model used is the same.
+    \stopitem
+    \startitem
+        We have a bit more virtual font magic available.
+    \stopitem
+    \startitem
+        Tweaking math fonts has been extended and is also applied.
+    \stopitem
+     \startitem
+        Of course we also have expansion but we can change that on the spot.
+     \stopitem
+\stopitemize
+
+\stoptitle
+
+\starttitle[title=Some new engine features]
+     \startitem
+        Math fonts are demanding and are \quote {loaded} three times per size
+        (three families) which means three times tweaking.
+     \stopitem
+     \startitem
+        For that reason compact math fonts were introduced: load once and select (ssty)
+        and scale (script and scriptscript) on the fly.
+     \stopitem
+     \startitem
+        That meant that some additional scaling parameters had to be introduced.
+     \stopitem
+     \startitem
+        Which in turn triggered dynamic scaling in text mode.
+     \stopitem
+\stoptitle
+
+\starttitle[title=Some new engine features]
+
+\startitemize
+    \startitem
+        The engine supports \typ {\glyphscale}, \typ {\glyphxscale}, \typ
+        {\glyphyscale}, \typ {\glyphslant} and \typ {\glyphweight}.
+    \stopitem
+    \startitem
+        There are also \typ {\Umathxscale} and \typ {\Umathyscale} (per math
+        style).
+    \stopitem
+    \startitem
+        These properties ar bound to glyphs which means that dimensions (when
+        needed) are calculated on the fly.
+    \stopitem
+    \startitem
+        Specific font (and other) glyph related features can be controlled locally:
+        left|/|right kerning and ligaturing, expansion, protrusion, italic correction
+        etc.
+    \stopitem
+    \startitem
+        A new primitive \typ {\fontspecdef} can efficiently change the current
+        combination of properties.
+    \stopitem
+\stopitemize
+
+\stoptitle
+
+\starttitle[title=Intermezzo: glyph nodes]
+
+\startitemize
+    \startitem
+        In \TEX\ they only contain font and character fields (in addition to the
+        common \typ {type}, \typ {subtype} and \type {next} fields.
+    \stopitem
+    \startitem
+        In \LUATEX\ they are larger and of course also have the new common \typ
+        {prev} and \typ {attr} fields plus two \SYNCTEX\ fields.
+    \stopitem
+    \startitem
+        In \LUAMETATEX\ glyph nodes are among the largest nodes, currently 14
+        times 8 bytes.
+    \stopitem
+    \startitem
+        There are 4 byte fields: \typ {font}, \typ {data}, \typ {state}, \typ
+        {options}, \typ {hyphenate}, \typ {expansion}, \typ {x_scale}, \typ
+        {y_scale}, \typ {scale}, \typ {raise}, \typ {left}, \typ {right}, \typ
+        {x_offset}, \typ {y_offset}, \typ {weight}, \typ {slant} and \typ {index}
+        (math).
+    \stopitem
+    \startitem
+        There are 2 byte fields: \typ {language}, \typ {control}, \typ
+        {properties} (math) and \typ {group} (math) and a few 1 byte fields: \typ
+        {protected}, \typ {lhmin}, \typ {rhmin} and \typ {discpart}.
+    \stopitem
+\stopitemize
+
+% one 2 byte reserved field \typ {reserved}
+
+\stoptitle
+
+\starttitle[title=Intermezzo: font spec nodes]
+
+\startitemize
+    \startitem
+        The \quote {spec} in the \typ {\fontspecdef} indicates a similarity with
+        so called \quote {glue spec}, as they also use so called nodes as storage
+        container.
+    \stopitem
+    \startitem
+        Of course such a font switch is a bit more costly than a regular \typ
+        {\font} switch.
+    \stopitem
+    \startitem
+        There are some related query commands: \typ {fontspecid}, \typ
+        {fontspecifiedsize}, \typ {fontspecscale}, \typ {fontspecxscale}, \typ
+        {fontspecyscale}, \typ {fontspecslant} and \typ {fontspecweight}.
+    \stopitem
+    \startitem
+        It is currently a 5 memory word node (5 times 8 bytes) with 4 byte
+        fields: \type {state}, \type {identifier}, \type {scale}, \type
+        {x_scale}, \type {y_scale}, \type {slant} and \type {weight}.
+    \stopitem
+\stopitemize
+
+\stoptitle
+
+\starttitle[title=Compact mode]
+
+\startitemize
+    \startitem
+        Compact font mode is enabled at the top of the document (before fonts get
+        defined):
+\starttyping
+\enableexperiments[fonts.compact]
+\stoptyping
+    \stopitem
+    \startitem
+        Often performance is the same, but for large fonts there is a gain. The
+        same is true for math fonts.
+    \stopitem
+    \startitem
+        The produced \PDF\ code can (!) be more efficient which compensates the
+        larger overhead.
+    \stopitem
+    \startitem
+        The question is: will we make this default which means that we need a
+        directive that enables traditional mode.
+    \stopitem
+\stopitemize
+
+\stoptitle
+
+\starttitle[title=Compact mode]
+
+The print version of \quotation {Math in \CONTEXT} currently has 290 pages.
+
+\blank[big]
+
+\starttabulate[|l|c|c|]
+\HL
+    \NC         \NC run time \NC file size \NC \NR
+\HL
+    \NC normal  \NC 13.6     \NC 2.457.962 \NC \NR
+    \NC compact \NC 10.6     \NC 2.456.630 \NC \NR
+\HL
+\stoptabulate
+
+\blank[big]
+
+105 font files loaded (see next page)
+
+\blank[big]
+
+\starttabulate[|l|c|c|c|c|c|]
+\HL
+\NC         \NC instances \NC backend \NC vectors \NC hashes \NC load time   \NC \NR
+\HL
+\NC normal  \NC 317       \NC 217               \NC 76             \NC 141           \NC 5.0 \NC \NR
+\NC compact \NC 110       \NC  43               \NC 41             \NC   2           \NC 1.9 \NC \NR
+\HL
+\stoptabulate
+
+\page
+
+105 font files loaded:
+
+\startalign[flushleft,broad,nothyphenated]
+\switchtobodyfont[tt,8pt]
+koeielettersot.ttf, lucidabrightmathot.otf, lucidabrightot.otf,
+lucidasanstypewriterot.otf, latinmodernmath-companion.otf,
+ralphsmithsformalscript-companion.otf, texgyrebonummath-companion.otf,
+texgyrepagellamath-companion.otf, texgyretermesmath-companion.otf,
+concrete-math.otf, ebgaramond-regular.otf, garamond-math.otf, erewhon-math.otf,
+erewhon-regular.otf, euler-math.otf, kpmath-bold.otf, kpmath-regular.otf,
+kpmono-regular.otf, kproman-regular.otf, libertinusmath-regular.otf,
+libertinusmono-regular.otf, libertinusserif-regular.otf, cambria.ttc,
+xcharter-math.otf, xcharter-roman.otf, iwona-regular.otf, iwonalight-regular.otf,
+kurier-regular.otf, kurierlight-regular.otf, antykwatorunska-bold.otf,
+antykwatorunska-italic.otf, antykwatorunska-regular.otf,
+antykwatorunskacond-regular.otf, antykwatorunskalight-regular.otf,
+latinmodern-math.otf, lmmono10-regular.otf, lmmonoltcond10-regular.otf,
+lmmonoproplt10-regular.otf, lmroman10-regular.otf, texgyrebonum-math.otf,
+texgyredejavu-math.otf, texgyrepagella-math.otf, texgyreschola-math.otf,
+texgyretermes-math.otf, texgyrebonum-bold.otf, texgyrebonum-italic.otf,
+texgyrebonum-regular.otf, texgyrepagella-bold.otf, texgyrepagella-bolditalic.otf,
+texgyrepagella-italic.otf, texgyrepagella-regular.otf, texgyreschola-regular.otf,
+texgyretermes-regular.otf, ex-iwonal.tfm, ex-iwonam.tfm, ex-iwonar.tfm,
+mi-iwonabi.tfm, mi-iwonali.tfm, mi-iwonami.tfm, mi-iwonari.tfm, rm-iwonab.tfm,
+rm-iwonal.tfm, rm-iwonam.tfm, rm-iwonar.tfm, sy-iwonalz.tfm, sy-iwonamz.tfm,
+sy-iwonarz.tfm, ex-kurierl.tfm, ex-kurierm.tfm, ex-kurierr.tfm, mi-kurierhi.tfm,
+mi-kurierli.tfm, mi-kuriermi.tfm, mi-kurierri.tfm, rm-kurierh.tfm,
+rm-kurierl.tfm, rm-kurierm.tfm, rm-kurierr.tfm, sy-kurierlz.tfm, sy-kuriermz.tfm,
+sy-kurierrz.tfm, ex-anttcr.tfm, ex-anttl.tfm, ex-anttr.tfm, mi-anttbi.tfm,
+mi-anttcbi.tfm, mi-anttcri.tfm, mi-anttli.tfm, mi-anttri.tfm, rm-anttb.tfm,
+rm-anttcb.tfm, rm-anttcr.tfm, rm-anttl.tfm, rm-anttr.tfm, sy-anttcrz.tfm,
+sy-anttlz.tfm, sy-anttrz.tfm, dejavusans-bold.ttf, dejavusans.ttf,
+dejavusansmono-bold.ttf, dejavusansmono-oblique.ttf, dejavusansmono.ttf,
+dejavuserif.ttf, stixtwomath-regular.ttf, stixtwotext-regular.ttf \stopalign
+
+\stoptitle
+
+\starttitle[title=Summary]
+
+\startitemize
+    \startitem
+        Compact font mode is the future, but it only works with \LUAMETATEX\ and
+        \CONTEXT\ \LMTX.
+    \stopitem
+    \startitem
+        The engine has to work harder, but the extra overhead can be neglected.
+    \stopitem
+    \startitem
+        Larger fonts have less impact.
+    \stopitem
+    \startitem
+        Using many fonts also has less impact.
+    \stopitem
+    \startitem
+        In math it is now the default anyway.
+    \stopitem
+    \startitem
+        We have larger nodes but the increase in memory usage is compensated by less fonts.
+    \stopitem
+    \startitem
+        One has to use dimension related helpers in \LUA\ (they do the scaling).
+    \stopitem
+    \startitem
+        The backend is more complex with respect to fonts so that compensates
+        the performance we gain on regular documents.
+    \stopitem
+\stopitemize
+
+\stoptitle
+
+\stopdocument
+


Property changes on: trunk/Master/texmf-dist/doc/context/presentations/context/2024/context-2024-compactfonts.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/context/presentations/context/2024/context-2024-pdf-2.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/context/presentations/context/2024/context-2024-pdf-2.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/context/presentations/context/2024/context-2024-pdf-2.pdf	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/presentations/context/2024/context-2024-pdf-2.pdf	2025-02-19 22:48:50 UTC (rev 74156)

Property changes on: trunk/Master/texmf-dist/doc/context/presentations/context/2024/context-2024-pdf-2.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/context/presentations/context/2024/context-2024-pdf-2.tex
===================================================================
--- trunk/Master/texmf-dist/doc/context/presentations/context/2024/context-2024-pdf-2.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/context/presentations/context/2024/context-2024-pdf-2.tex	2025-02-19 22:48:50 UTC (rev 74156)
@@ -0,0 +1,145 @@
+% language=us
+
+\environment context-2024-style
+
+\startdocument
+  [title={PDF 2.0},
+   banner={what does it mean for us},
+   location={context\enspace {\bf 2024}\enspace meeting}]
+
+\starttitle[title=Short history]
+
+\startitemize
+\startitem It started in 1992. \stopitem
+\startitem The \PDF\ format basically is flattened \POSTSCRIPT. \stopitem
+\startitem The file has objects accessed via a page tree. \stopitem
+\startitem Random access is provided via a cross reference table. \stopitem
+\startitem In principle not all in the file has to be loaded. \stopitem
+\startitem All resources (fonts, graphics) are (can be) included. \stopitem
+\stopitemize
+
+\stoptitle
+
+\starttitle[title=The tools]
+
+\startitemize
+\startitem A \PDF\ file was supposed to be made with Acrobat Distiller. \stopitem
+\startitem Previewing was done with Acrobat Reader. \stopitem
+\startitem Distribution was assumed to happen with Acrobat Exchange. \stopitem
+\startitem The Reader was limited in functionality. \stopitem
+\startitem Exchange was expensive (pay per document or \CD).\stopitem
+\startitem Distiller didn't come cheap either. \stopitem
+\startitem Plugins were part of the design but in the end a failure. \stopitem
+\startitem The \MSDOS\ reader was not that bad. \stopitem
+\startitem But such a lightweight viewers never made it to e.g.\ \LINUX \stopitem
+\stopitemize
+
+\stoptitle
+
+\starttitle[title=Usage]
+
+\startitemize
+\startitem For printing it was to replace \POSTSCRIPT: high speed and less demanding. \stopitem
+\startitem It was suitable for for preflight and last minute fixes: object version numbers and appended objects. \stopitem
+\startitem It could be used for storing graphic editor states: undocumented extensions are possible (using objects). \stopitem
+\startitem At some point widgets (forms) entered the picture (but intended usage changed, e.g.\ \FDF). \stopitem
+\startitem Layers are a powerful feature. \stopitem
+\stopitemize
+
+\stoptitle
+
+\starttitle[title=Usability]
+
+\startitemize
+\startitem Media support is unreliable and changed: quicktime, flash, whatever, a missed opportunity \stopitem
+\startitem Widgets are a bit unreliable, especially initialization and inheritance (bugs becoming features). \stopitem
+\startitem There is no baseline \JAVASCRIPT\ defined so viewers lack some simple powerful things. \stopitem
+\startitem One can do a lot but open source viewers (always) lag(ged) behind. \stopitem
+\startitem Some bits (like tagging) have seen little use and support so one can wonder where that ends. \stopitem
+\startitem For instance layers could be more useful but they lack control and support in free viewers. \stopitem
+\stopitemize
+
+\stoptitle
+
+\starttitle[title=Standardization]
+
+\startitemize
+\startitem In order to be predictable we have all kind of \PDF\ standards (prepress, archiving, accessibility). \stopitem
+\startitem The main (big) standard is an \ISO\ specification (kind of semi free). \stopitem
+\startitem Version 1.7 was already more or less frozen for a while. \stopitem
+\startitem So version 2.0 is not really a big jump, it is mostly 1.7, so maybe more of a freeze. \stopitem
+\startitem Validation and preflight is big business \unknown \stopitem
+\startitem \unknown\ as is signing and digital right management. \stopitem
+\startitem The 2.0 standard seems kind of fluid anyway (also driven by what tools can(not) do). \stopitem
+\startitem Printing houses often have old tools (and sometimes mess with the \PDF). \stopitem
+\stopitemize
+
+\stoptitle
+
+\starttitle[title=Producing \PDF]
+
+\startitemize
+\startitem The tools produce quite reliable and compact \PDF. \stopitem
+\startitem We can basically add anything we want. \stopitem
+\startitem There is no real need to adapt as \PDF\ 2.0 it is. \stopitem
+\startitem \TYPETHREE\ support in open source is inconsistent and needs care. \stopitem
+\startitem There is demand for tagging (weak and insufficient spec). \stopitem
+\startitem By going 2.0 we can in principle drop older versions. \stopitem
+\startitem We do our best to deal with encryption and signing. \stopitem
+\stopitemize
+
+\stoptitle
+
+\starttitle[title=Open source]
+
+\startitemize
+\startitem \TEX\ engines could produce \PDF\ (we used \DVIPSONE\ and Distiller) rather early in the game. \stopitem
+\startitem Interactive features could be supported immediately (we already supported \DVIWINDO) because we had an backend abstraction layer. \stopitem
+\startitem The real take off happened when \PDFTEX\ came around. \stopitem
+\startitem An reliable alternative route was via \DVIPDFMX. \stopitem
+\startitem For us Sumatra (\MSWINDOWS) was the first competing alternative viewer. \stopitem
+\startitem And Okular (\LINUX, \MSWINDOWS) was quite useful too. \stopitem
+\startitem I now use these two and seldom launch Acrobat Reader which has rather intrusive interfaces. \stopitem
+\startitem It is very much about not letting the tools getting in the way (productivity). \stopitem
+\stopitemize
+
+\stoptitle
+
+\starttitle[title=Closed source]
+
+\startitemize
+\startitem There is a lot of commercialization of \PDF. \stopitem
+\startitem (Okay, that also happens in the \TEX\ environment.) \stopitem
+\startitem We have and get locked|-|in dependencies on the cloud and web. \stopitem
+\startitem No one really knows what happens with data and content. \stopitem
+\startitem One can be surprised about the messy \PDF\ being produced. \stopitem
+\startitem Standards become applications, applications become standards. \stopitem
+\startitem Open and closed source are different worlds with often different interests. \stopitem
+\stopitemize
+
+\stoptitle
+
+\starttitle[title=New in \CONTEXT]
+
+Inclusion of pages from a \PDF\ file is controlled by:
+
+\starttyping
+compactors-preset.lua
+\stoptyping
+
+We can enable and disable checks and fixes if needed. If needed we can add some hooks.
+
+There are also options to merge references, comments, bookmarks, fields, layers
+and renditions.
+
+In \LMTX\ we add additional information that we can use in the future. We have a registered
+name space (in addition to the standard one used in the other \TEX\ engines).
+
+{\bf Demo:} fixing and normalizing rather hybrid documents.
+
+{\bf Discussion:} What do users need?
+
+\stoptitle
+
+\stopdocument
+


Property changes on: trunk/Master/texmf-dist/doc/context/presentations/context/2024/context-2024-pdf-2.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/context/presentations/context/2024/context-2024-segments.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/context/presentations/context/2024/context-2024-segments.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/context/presentations/context/2024/context-2024-segments.pdf	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/presentations/context/2024/context-2024-segments.pdf	2025-02-19 22:48:50 UTC (rev 74156)

Property changes on: trunk/Master/texmf-dist/doc/context/presentations/context/2024/context-2024-segments.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/context/presentations/context/2024/context-2024-segments.tex
===================================================================
--- trunk/Master/texmf-dist/doc/context/presentations/context/2024/context-2024-segments.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/context/presentations/context/2024/context-2024-segments.tex	2025-02-19 22:48:50 UTC (rev 74156)
@@ -0,0 +1,125 @@
+% language=us
+
+\useMPlibrary[segments] % before we load the fonts
+
+\environment context-2024-style
+
+\definefontfeature
+  [default]
+  [default]
+  [metapost={category=segments,weight=1.75,offset=.2}]
+
+\startdocument
+  [title={segments},
+   banner={a bit of sidetracking},
+   location={context\enspace {\bf 2024}\enspace meeting}]
+
+% \definehighlight
+%   [Digits]
+%   [style=\addfeature{segmentdigits}]
+
+\starttitle[title=What is needed]
+
+\startitemize
+\startitem With digits we normally mean \Digits{0, 1, 2, 3, 4, 5, 6, 7, 8, 9 and 0}. \stopitem
+\startitem When computers are discussed \Digits{A, B, C, D, E and F} are also kind of digits. \stopitem
+\startitem When numbers are to be rendered we need a \Digits{.} and a \Digits{-}. \stopitem
+\startitem The \Digits{E} can be used for exponents. \stopitem
+\startitem On dedicated devices rendering with leds can be optimized. \stopitem
+\startitem Ah, so for clocks we need a \Digits{:} then. \stopitem
+\stopitemize
+
+\vfilll
+
+{\em Note: This was an optional talk. On the \quote {math day} The other talks
+(Ton, Frits, Willi, Bruce) were way more fun anyway!}
+
+\stoptitle
+
+\starttitle[title=How does it look]
+
+Here we use a bolder version, so we get for all (regular) elements in a segmented glyph   :
+
+\startlinecorrection[2*big]
+    \dontleavehmode
+    \scale[height=.5th]{\showglyphs\char\privatecharactercode{segment elements}}%
+    \quad
+    \quad
+    \scale[height=.5th]{\showglyphs\char\privatecharactercode{segment diagonals}}%
+\stoplinecorrection
+
+The colon is normally a dedicated segmented display and then there is no period,
+which otherwise is integrated.
+
+\stoptitle
+
+\starttitle[title=What are the challenges]
+
+\startitemize
+\startitem In \UNICODE\ we actually have the digits so let's use them. \stopitem
+\startitem But we need private slots for the hexadecimal digits and other symbols. \stopitem
+\startitem The period is within the bounding box of the segment so we need kerning. \stopitem
+\startitem Contrary to for instance Kaktovik and Riven numerals we don't need a converter. \stopitem
+\startitem Instead we just use a dynamic feature. \stopitem
+\stopitemize
+
+\stoptitle
+
+\starttitle[title=How is is done]
+
+\startitemize
+\startitem We define the private slots by name so we can access then from anywhere. \stopitem
+\startitem We define a \METAFUN\ macro that renders the glyphs. \stopitem
+\startitem We register the relevant replacement glyphs in \METAFUN. \stopitem
+\startitem We register some font features in \LUA: substitution, kerning and a ligature. \stopitem
+\startitem At the \TEX\ end the replacement glyphs can be hooked into the current font. \stopitem
+\startitem We use a highlight to (temporarily) enable the feature(s). \stopitem
+\stopitemize
+
+\stoptitle
+
+\starttitle[title=How is is used]
+
+\starttyping
+\useMPlibrary[segments]
+
+\definefontfeature
+  [default]
+  [default]
+  [metapost=segments]
+% [metapost={category=segments,weight=2.0,offset=.2}]
+\stoptyping
+
+Because \fontclass\ is somewhat bold here we used the bold definition. You can
+also slant the shapes. The module defines a highlight:
+
+\starttyping
+\definehighlight
+  [Digits]
+  [style=\addfeature{segmentdigits}]
+\stoptyping
+
+\stoptitle
+
+\starttitle[title=How does the code look]
+
+\enabledirectives[visualizers.fraction=1]
+
+Here is the basic repertoire (the space is a regular one):
+
+\starttabulate
+\NC digits  \NC \showglyphs \Digits{1 2 3 4 5 6 7 8 9 0} \NC \NR
+\NC letters \NC \showglyphs \Digits{A B C D E F}         \NC \NR
+\NC others  \NC \showglyphs \Digits{- . :}               \NC \NR
+\NC extra   \NC \showglyphs \Digits{CONTEXT}             \NC \NR
+\stoptabulate
+
+Let's have a look at:
+
+\starttyping
+meta-imp-segments.mkxl
+\stoptyping
+
+\stoptitle
+
+\stopdocument


Property changes on: trunk/Master/texmf-dist/doc/context/presentations/context/2024/context-2024-segments.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/context/presentations/context/2024/context-2024-style.tex
===================================================================
--- trunk/Master/texmf-dist/doc/context/presentations/context/2024/context-2024-style.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/context/presentations/context/2024/context-2024-style.tex	2025-02-19 22:48:50 UTC (rev 74156)
@@ -0,0 +1,18 @@
+\startenvironment context-2024-style
+
+\usemodule[present-boring,abbreviations-logos]
+
+\definecolor[maincolor] [h=0057b7]
+\definecolor[extracolor][h=ffd700]
+
+\definecolor[trace:o] [s=1]
+
+\enabledirectives[visualizers.fraction=5]
+
+\setupbottom
+  [color=darkcolor]
+
+\setupbodyfont
+  [dejavu,14.4pt]
+
+\stopenvironment


Property changes on: trunk/Master/texmf-dist/doc/context/presentations/context/2024/context-2024-style.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/context/presentations/context/2024/kingjames-001.png
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/context/presentations/context/2024/kingjames-001.png
===================================================================
--- trunk/Master/texmf-dist/doc/context/presentations/context/2024/kingjames-001.png	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/presentations/context/2024/kingjames-001.png	2025-02-19 22:48:50 UTC (rev 74156)

Property changes on: trunk/Master/texmf-dist/doc/context/presentations/context/2024/kingjames-001.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/context/presentations/context/2024/kingjames-002.png
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/context/presentations/context/2024/kingjames-002.png
===================================================================
--- trunk/Master/texmf-dist/doc/context/presentations/context/2024/kingjames-002.png	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/presentations/context/2024/kingjames-002.png	2025-02-19 22:48:50 UTC (rev 74156)

Property changes on: trunk/Master/texmf-dist/doc/context/presentations/context/2024/kingjames-002.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/context/scripts/mkiv/context.html
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkiv/context.html	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkiv/context.html	2025-02-19 22:48:50 UTC (rev 74156)
@@ -89,10 +89,12 @@
         <tr><th>--batchmode</th><td></td><td>run without stopping and do not show messages on the console</td></tr>
         <tr><th>--nonstopmode</th><td></td><td>run without stopping</td></tr>
         <tr><th/><td/><td/></tr>
+        <tr><th>--nocompactfonts</th><td></td><td>revert to less efficient (traditional) font scaling</td></tr>
+        <tr><th/><td/><td/></tr>
         <tr><th>--nosynctex</th><td></td><td>never initializes synctex (for production runs)</td></tr>
         <tr><th>--synctex</th><td></td><td>run with synctex enabled (better use \setupsynctex[state=start])</td></tr>
         <tr><th/><td/><td/></tr>
-        <tr><th>--nodates</th><td></td><td>omit runtime dates in pdf file (optional value: a number (this 1970 offset time) or string "YYYY-MM-DD HH:MM")</td></tr>
+        <tr><th>--nodates</th><td></td><td>omit runtime dates in pdf file (optional value: a number (1970 offset) or string "YYYY-MM-DD HH:MM")</td></tr>
         <tr><th>--nocompression</th><td></td><td>forcefully turns off compression in the backend</td></tr>
         <tr><th>--trailerid</th><td></td><td>alternative trailer id (or constant one)</td></tr>
         <tr><th/><td/><td/></tr>
@@ -124,6 +126,8 @@
         <tr><th>--ownerpassword</th><td></td><td>encrypt the (pdf) file using this master password</td></tr>
         <tr><th>--userpassword</th><td></td><td>use an additional password for opening the document</td></tr>
         <tr><th>--permissions</th><td></td><td>list of: print, modify, extract, add, fillin, assemble, quality</td></tr>
+        <tr><th/><td/><td/></tr>
+        <tr><th>--wtpdf</th><td></td><td>add an wtpdf conformance blob but best check first if it applies</td></tr>
         <tr><th colspan="3">special</th></tr>
         <tr><th/><td/><td/></tr>
         <tr><th>--pdftex</th><td></td><td>process file with texexec using pdftex</td></tr>

Modified: trunk/Master/texmf-dist/doc/context/scripts/mkiv/context.man
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkiv/context.man	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkiv/context.man	2025-02-19 22:48:50 UTC (rev 74156)
@@ -1,4 +1,4 @@
-.TH "mtx-context" "1" "01-01-2024" "version 1.05" "ConTeXt Process Management"
+.TH "mtx-context" "1" "01-01-2025" "version 1.05" "ConTeXt Process Management"
 .SH NAME
  mtx-context - ConTeXt Process Management
 .SH SYNOPSIS
@@ -128,6 +128,9 @@
 .B --nonstopmode
 run without stopping
 .TP
+.B --nocompactfonts
+revert to less efficient (traditional) font scaling
+.TP
 .B --nosynctex
 never initializes synctex (for production runs)
 .TP
@@ -135,7 +138,7 @@
 run with synctex enabled (better use \setupsynctex[state=start])
 .TP
 .B --nodates
-omit runtime dates in pdf file (optional value: a number (this 1970 offset time) or string "YYYY-MM-DD HH:MM")
+omit runtime dates in pdf file (optional value: a number (1970 offset) or string "YYYY-MM-DD HH:MM")
 .TP
 .B --nocompression
 forcefully turns off compression in the backend
@@ -209,6 +212,9 @@
 .TP
 .B --permissions
 list of: print, modify, extract, add, fillin, assemble, quality
+.TP
+.B --wtpdf
+add an wtpdf conformance blob but best check first if it applies
 .SH OPTIONS: SPECIAL
 .TP
 .B --pdftex

Modified: trunk/Master/texmf-dist/doc/context/scripts/mkiv/context.xml
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkiv/context.xml	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkiv/context.xml	2025-02-19 22:48:50 UTC (rev 74156)
@@ -147,6 +147,11 @@
                 </flag>
             </subcategory>
             <subcategory>
+                <flag name="nocompactfonts">
+                    <short>revert to less efficient (traditional) font scaling</short>
+                </flag>
+            </subcategory>
+            <subcategory>
                 <flag name="nosynctex">
                     <short>never initializes synctex (for production runs)</short>
                 </flag>
@@ -156,7 +161,7 @@
             </subcategory>
             <subcategory>
                 <flag name="nodates">
-                    <short>omit runtime dates in pdf file (optional value: a number (this 1970 offset time) or string "YYYY-MM-DD HH:MM")</short>
+                    <short>omit runtime dates in pdf file (optional value: a number (1970 offset) or string "YYYY-MM-DD HH:MM")</short>
                 </flag>
                 <flag name="nocompression">
                     <short>forcefully turns off compression in the backend</short>
@@ -248,6 +253,11 @@
                     <short>list of: print, modify, extract, add, fillin, assemble, quality</short>
                 </flag>
             </subcategory>
+            <subcategory>
+                <flag name="wtpdf">
+                    <short>add an wtpdf conformance blob but best check first if it applies</short>
+                </flag>
+            </subcategory>
         </category>
         <category name="special">
             <subcategory>

Modified: trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-babel.man
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-babel.man	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-babel.man	2025-02-19 22:48:50 UTC (rev 74156)
@@ -1,4 +1,4 @@
-.TH "mtx-babel" "1" "01-01-2024" "version 1.20" "Babel Input To UTF Conversion"
+.TH "mtx-babel" "1" "01-01-2025" "version 1.20" "Babel Input To UTF Conversion"
 .SH NAME
  mtx-babel - Babel Input To UTF Conversion
 .SH SYNOPSIS

Modified: trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-base.man
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-base.man	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-base.man	2025-02-19 22:48:50 UTC (rev 74156)
@@ -1,4 +1,4 @@
-.TH "mtx-base" "1" "01-01-2024" "version 1.35" "ConTeXt TDS Management Tool (aka luatools)"
+.TH "mtx-base" "1" "01-01-2025" "version 1.35" "ConTeXt TDS Management Tool (aka luatools)"
 .SH NAME
  mtx-base - ConTeXt TDS Management Tool (aka luatools)
 .SH SYNOPSIS

Modified: trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-bibtex.html
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-bibtex.html	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-bibtex.html	2025-02-19 22:48:50 UTC (rev 74156)
@@ -41,6 +41,7 @@
         <tr><th/><td/><td/></tr>
         <tr><th>--toxml</th><td></td><td>convert bibtex database(s) to xml</td></tr>
         <tr><th>--tolua</th><td></td><td>convert bibtex database(s) to lua</td></tr>
+        <tr><th>--totxt</th><td></td><td>convert bibtex database(s) to text (key = value)</td></tr>
         <tr><th>--search</th><td></td><td>seatch bibtex database(s)</td></tr>
     </table>
 <br/>
@@ -47,6 +48,7 @@
 <h1>Example</h1>
 <tt>mtxrun --script bibtex --tolua bibl-001.bib</tt>
 <br/><tt>mtxrun --script bibtex --tolua --simple bibl-001.bib</tt>
+<br/><tt>mtxrun --script bibtex --totxt bibl-003.bib</tt>
 <br/><tt>mtxrun --script bibtex --toxml bibl-001.bib bibl-002.bib bibl-003.bib biblio.xml</tt>
 <br/><tt>mtxrun --script bibtex --search --list --pattern=match(author:foo) bar.bib</tt>
 <br/><br/>            </div>

Modified: trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-bibtex.man
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-bibtex.man	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-bibtex.man	2025-02-19 22:48:50 UTC (rev 74156)
@@ -1,4 +1,4 @@
-.TH "mtx-bibtex" "1" "01-01-2024" "version 1.00" "bibtex helpers"
+.TH "mtx-bibtex" "1" "01-01-2025" "version 1.00" "bibtex helpers"
 .SH NAME
  mtx-bibtex - bibtex helpers
 .SH SYNOPSIS
@@ -17,6 +17,9 @@
 .B --tolua
 convert bibtex database(s) to lua
 .TP
+.B --totxt
+convert bibtex database(s) to text (key = value)
+.TP
 .B --search
 seatch bibtex database(s)
 .SH AUTHOR

Modified: trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-bibtex.xml
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-bibtex.xml	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-bibtex.xml	2025-02-19 22:48:50 UTC (rev 74156)
@@ -10,6 +10,7 @@
    <subcategory>
     <flag name="toxml"><short>convert bibtex database(s) to xml</short></flag>
     <flag name="tolua"><short>convert bibtex database(s) to lua</short></flag>
+    <flag name="totxt"><short>convert bibtex database(s) to text (key = value)</short></flag>
     <flag name="search"><short>seatch bibtex database(s)</short></flag>
    </subcategory>
   </category>
@@ -20,6 +21,7 @@
    <subcategory>
     <example><command>mtxrun --script bibtex --tolua bibl-001.bib</command></example>
     <example><command>mtxrun --script bibtex --tolua --simple bibl-001.bib</command></example>
+    <example><command>mtxrun --script bibtex --totxt bibl-003.bib</command></example>
     <example><command>mtxrun --script bibtex --toxml bibl-001.bib bibl-002.bib bibl-003.bib biblio.xml</command></example>
     <example><command>mtxrun --script bibtex --search --list --pattern=match(author:foo) bar.bib</command></example>
    </subcategory>

Modified: trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-cache.html
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-cache.html	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-cache.html	2025-02-19 22:48:50 UTC (rev 74156)
@@ -40,7 +40,7 @@
     <tr><th style="width: 10em">flag</th><th style="width: 8em">value</th><th>description</th></tr>
         <tr><th/><td/><td/></tr>
         <tr><th>--make</th><td></td><td>generate databases and formats</td></tr>
-        <tr><th>--erase</th><td></td><td>completely remove cache</td></tr>
+        <tr><th>--erase</th><td></td><td>completely remove cache [--bytecode]</td></tr>
         <tr><th>--list</th><td></td><td>show cache</td></tr>
         <tr><th/><td/><td/></tr>
         <tr><th>--fonts</th><td></td><td>only wipe fonts</td></tr>

Modified: trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-cache.man
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-cache.man	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-cache.man	2025-02-19 22:48:50 UTC (rev 74156)
@@ -1,4 +1,4 @@
-.TH "mtx-cache" "1" "01-01-2024" "version 1.01" "ConTeXt & MetaTeX Cache Management"
+.TH "mtx-cache" "1" "01-01-2025" "version 1.01" "ConTeXt & MetaTeX Cache Management"
 .SH NAME
  mtx-cache - ConTeXt & MetaTeX Cache Management
 .SH SYNOPSIS
@@ -15,7 +15,7 @@
 generate databases and formats
 .TP
 .B --erase
-completely remove cache
+completely remove cache [--bytecode]
 .TP
 .B --list
 show cache

Modified: trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-cache.xml
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-cache.xml	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-cache.xml	2025-02-19 22:48:50 UTC (rev 74156)
@@ -9,7 +9,7 @@
   <category name="basic">
    <subcategory>
     <flag name="make"><short>generate databases and formats</short></flag>
-    <flag name="erase"><short>completely remove cache</short></flag>
+    <flag name="erase"><short>completely remove cache [--bytecode]</short></flag>
     <flag name="list"><short>show cache</short></flag>
    </subcategory>
    <subcategory>

Modified: trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-chars.man
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-chars.man	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-chars.man	2025-02-19 22:48:50 UTC (rev 74156)
@@ -1,4 +1,4 @@
-.TH "mtx-chars" "1" "01-01-2024" "version 0.10" "MkII Character Table Generators"
+.TH "mtx-chars" "1" "01-01-2025" "version 0.10" "MkII Character Table Generators"
 .SH NAME
  mtx-chars - MkII Character Table Generators
 .SH SYNOPSIS

Modified: trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-check.man
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-check.man	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-check.man	2025-02-19 22:48:50 UTC (rev 74156)
@@ -1,4 +1,4 @@
-.TH "mtx-check" "1" "01-01-2024" "version 0.10" "Basic ConTeXt Syntax Checking"
+.TH "mtx-check" "1" "01-01-2025" "version 0.10" "Basic ConTeXt Syntax Checking"
 .SH NAME
  mtx-check - Basic ConTeXt Syntax Checking
 .SH SYNOPSIS

Modified: trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-colors.man
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-colors.man	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-colors.man	2025-02-19 22:48:50 UTC (rev 74156)
@@ -1,4 +1,4 @@
-.TH "mtx-colors" "1" "01-01-2024" "version 0.10" "ConTeXt Color Management"
+.TH "mtx-colors" "1" "01-01-2025" "version 0.10" "ConTeXt Color Management"
 .SH NAME
  mtx-colors - ConTeXt Color Management
 .SH SYNOPSIS

Modified: trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-context.html
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-context.html	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-context.html	2025-02-19 22:48:50 UTC (rev 74156)
@@ -89,10 +89,12 @@
         <tr><th>--batchmode</th><td></td><td>run without stopping and do not show messages on the console</td></tr>
         <tr><th>--nonstopmode</th><td></td><td>run without stopping</td></tr>
         <tr><th/><td/><td/></tr>
+        <tr><th>--nocompactfonts</th><td></td><td>revert to less efficient (traditional) font scaling</td></tr>
+        <tr><th/><td/><td/></tr>
         <tr><th>--nosynctex</th><td></td><td>never initializes synctex (for production runs)</td></tr>
         <tr><th>--synctex</th><td></td><td>run with synctex enabled (better use \setupsynctex[state=start])</td></tr>
         <tr><th/><td/><td/></tr>
-        <tr><th>--nodates</th><td></td><td>omit runtime dates in pdf file (optional value: a number (this 1970 offset time) or string "YYYY-MM-DD HH:MM")</td></tr>
+        <tr><th>--nodates</th><td></td><td>omit runtime dates in pdf file (optional value: a number (1970 offset) or string "YYYY-MM-DD HH:MM")</td></tr>
         <tr><th>--nocompression</th><td></td><td>forcefully turns off compression in the backend</td></tr>
         <tr><th>--trailerid</th><td></td><td>alternative trailer id (or constant one)</td></tr>
         <tr><th/><td/><td/></tr>
@@ -124,6 +126,8 @@
         <tr><th>--ownerpassword</th><td></td><td>encrypt the (pdf) file using this master password</td></tr>
         <tr><th>--userpassword</th><td></td><td>use an additional password for opening the document</td></tr>
         <tr><th>--permissions</th><td></td><td>list of: print, modify, extract, add, fillin, assemble, quality</td></tr>
+        <tr><th/><td/><td/></tr>
+        <tr><th>--wtpdf</th><td></td><td>add an wtpdf conformance blob but best check first if it applies</td></tr>
         <tr><th colspan="3">special</th></tr>
         <tr><th/><td/><td/></tr>
         <tr><th>--pdftex</th><td></td><td>process file with texexec using pdftex</td></tr>

Modified: trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-context.man
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-context.man	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-context.man	2025-02-19 22:48:50 UTC (rev 74156)
@@ -1,4 +1,4 @@
-.TH "mtx-context" "1" "01-01-2024" "version 1.05" "ConTeXt Process Management"
+.TH "mtx-context" "1" "01-01-2025" "version 1.05" "ConTeXt Process Management"
 .SH NAME
  mtx-context - ConTeXt Process Management
 .SH SYNOPSIS
@@ -128,6 +128,9 @@
 .B --nonstopmode
 run without stopping
 .TP
+.B --nocompactfonts
+revert to less efficient (traditional) font scaling
+.TP
 .B --nosynctex
 never initializes synctex (for production runs)
 .TP
@@ -135,7 +138,7 @@
 run with synctex enabled (better use \setupsynctex[state=start])
 .TP
 .B --nodates
-omit runtime dates in pdf file (optional value: a number (this 1970 offset time) or string "YYYY-MM-DD HH:MM")
+omit runtime dates in pdf file (optional value: a number (1970 offset) or string "YYYY-MM-DD HH:MM")
 .TP
 .B --nocompression
 forcefully turns off compression in the backend
@@ -209,6 +212,9 @@
 .TP
 .B --permissions
 list of: print, modify, extract, add, fillin, assemble, quality
+.TP
+.B --wtpdf
+add an wtpdf conformance blob but best check first if it applies
 .SH OPTIONS: SPECIAL
 .TP
 .B --pdftex

Modified: trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-context.xml
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-context.xml	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-context.xml	2025-02-19 22:48:50 UTC (rev 74156)
@@ -147,6 +147,11 @@
                 </flag>
             </subcategory>
             <subcategory>
+                <flag name="nocompactfonts">
+                    <short>revert to less efficient (traditional) font scaling</short>
+                </flag>
+            </subcategory>
+            <subcategory>
                 <flag name="nosynctex">
                     <short>never initializes synctex (for production runs)</short>
                 </flag>
@@ -156,7 +161,7 @@
             </subcategory>
             <subcategory>
                 <flag name="nodates">
-                    <short>omit runtime dates in pdf file (optional value: a number (this 1970 offset time) or string "YYYY-MM-DD HH:MM")</short>
+                    <short>omit runtime dates in pdf file (optional value: a number (1970 offset) or string "YYYY-MM-DD HH:MM")</short>
                 </flag>
                 <flag name="nocompression">
                     <short>forcefully turns off compression in the backend</short>
@@ -248,6 +253,11 @@
                     <short>list of: print, modify, extract, add, fillin, assemble, quality</short>
                 </flag>
             </subcategory>
+            <subcategory>
+                <flag name="wtpdf">
+                    <short>add an wtpdf conformance blob but best check first if it applies</short>
+                </flag>
+            </subcategory>
         </category>
         <category name="special">
             <subcategory>

Modified: trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-convert.man
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-convert.man	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-convert.man	2025-02-19 22:48:50 UTC (rev 74156)
@@ -1,4 +1,4 @@
-.TH "mtx-convert" "1" "01-01-2024" "version 0.10" "ConTeXT Graphic Conversion Helpers"
+.TH "mtx-convert" "1" "01-01-2025" "version 0.10" "ConTeXT Graphic Conversion Helpers"
 .SH NAME
  mtx-convert - ConTeXT Graphic Conversion Helpers
 .SH SYNOPSIS

Modified: trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-ctan.man
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-ctan.man	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-ctan.man	2025-02-19 22:48:50 UTC (rev 74156)
@@ -1,4 +1,4 @@
-.TH "mtx-ctan" "1" "01-01-2024" "version 1.00" "Dealing with CTAN"
+.TH "mtx-ctan" "1" "01-01-2025" "version 1.00" "Dealing with CTAN"
 .SH NAME
  mtx-ctan - Dealing with CTAN
 .SH SYNOPSIS

Modified: trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-dvi.man
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-dvi.man	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-dvi.man	2025-02-19 22:48:50 UTC (rev 74156)
@@ -1,4 +1,4 @@
-.TH "mtx-dvi" "1" "01-01-2024" "version 0.01" "ConTeXt DVI Helpers"
+.TH "mtx-dvi" "1" "01-01-2025" "version 0.01" "ConTeXt DVI Helpers"
 .SH NAME
  mtx-dvi - ConTeXt DVI Helpers
 .SH SYNOPSIS

Modified: trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-epub.html
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-epub.html	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-epub.html	2025-02-19 22:48:50 UTC (rev 74156)
@@ -45,10 +45,13 @@
         <tr><th>--svgmath</th><td></td><td>convert mathml to svg</td></tr>
         <tr><th>--svgstyle</th><td></td><td>use given tex style for svg generation (overloads style in specification)</td></tr>
         <tr><th>--all</th><td></td><td>assume: --purge --rename --svgmath (for fast testing)</td></tr>
+        <tr><th>--images</th><td></td><td>convert images to svg [--fix]</td></tr>
     </table>
 <br/>
 <h1>Example</h1>
 <tt>mtxrun --script epub --make mydocument</tt>
+<br/><br/><tt>mtxrun --script epub --images mydocument</tt>
+<br/><tt>mtxrun --script epub --images --fix mydocument</tt>
 <br/><br/>            </div>
         </div>
         </body>

Modified: trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-epub.man
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-epub.man	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-epub.man	2025-02-19 22:48:50 UTC (rev 74156)
@@ -1,4 +1,4 @@
-.TH "mtx-epub" "1" "01-01-2024" "version 1.10" "ConTeXt EPUB Helpers"
+.TH "mtx-epub" "1" "01-01-2025" "version 1.10" "ConTeXt EPUB Helpers"
 .SH NAME
  mtx-epub - ConTeXt EPUB Helpers
 .SH SYNOPSIS
@@ -28,6 +28,9 @@
 .TP
 .B --all
 assume: --purge --rename --svgmath (for fast testing)
+.TP
+.B --images
+convert images to svg [--fix]
 .SH AUTHOR
 More information about ConTeXt and the tools that come with it can be found at:
 

Modified: trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-epub.xml
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-epub.xml	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-epub.xml	2025-02-19 22:48:50 UTC (rev 74156)
@@ -14,6 +14,7 @@
     <flag name="svgmath"><short>convert mathml to svg</short></flag>
     <flag name="svgstyle"><short>use given tex style for svg generation (overloads style in specification)</short></flag>
     <flag name="all"><short>assume: --purge --rename --svgmath (for fast testing)</short></flag>
+    <flag name="images"><short>convert images to svg [--fix]</short></flag>
    </subcategory>
   </category>
  </flags>
@@ -23,6 +24,10 @@
    <subcategory>
     <example><command>mtxrun --script epub --make mydocument</command></example>
    </subcategory>
+   <subcategory>
+    <example><command>mtxrun --script epub --images mydocument</command></example>
+    <example><command>mtxrun --script epub --images --fix mydocument</command></example>
+   </subcategory>
   </category>
  </examples>
 </application>

Modified: trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-evohome.man
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-evohome.man	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-evohome.man	2025-02-19 22:48:50 UTC (rev 74156)
@@ -1,4 +1,4 @@
-.TH "mtx-evohome" "1" "01-01-2024" "version 1.00" "Evohome Fetcher"
+.TH "mtx-evohome" "1" "01-01-2025" "version 1.00" "Evohome Fetcher"
 .SH NAME
  mtx-evohome - Evohome Fetcher
 .SH SYNOPSIS

Modified: trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-fcd.man
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-fcd.man	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-fcd.man	2025-02-19 22:48:50 UTC (rev 74156)
@@ -1,4 +1,4 @@
-.TH "mtx-fcd" "1" "01-01-2024" "version 1.00" "Fast Directory Change"
+.TH "mtx-fcd" "1" "01-01-2025" "version 1.00" "Fast Directory Change"
 .SH NAME
  mtx-fcd - Fast Directory Change
 .SH SYNOPSIS

Modified: trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-fixpdf.man
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-fixpdf.man	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-fixpdf.man	2025-02-19 22:48:50 UTC (rev 74156)
@@ -1,4 +1,4 @@
-.TH "mtx-tools" "1" "01-01-2024" "version 1.01" "Some File Related Goodies"
+.TH "mtx-tools" "1" "01-01-2025" "version 1.01" "Some File Related Goodies"
 .SH NAME
  mtx-tools - Some File Related Goodies
 .SH SYNOPSIS

Modified: trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-flac.man
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-flac.man	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-flac.man	2025-02-19 22:48:50 UTC (rev 74156)
@@ -1,4 +1,4 @@
-.TH "mtx-flac" "1" "01-01-2024" "version 0.10" "ConTeXt Flac Helpers"
+.TH "mtx-flac" "1" "01-01-2025" "version 0.10" "ConTeXt Flac Helpers"
 .SH NAME
  mtx-flac - ConTeXt Flac Helpers
 .SH SYNOPSIS

Modified: trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-fonts.html
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-fonts.html	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-fonts.html	2025-02-19 22:48:50 UTC (rev 74156)
@@ -14,7 +14,7 @@
 
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
     <head>
-        <title>ConTeXt Font Database Management 0.21</title>
+        <title>ConTeXt Font Database Management 1.22</title>
         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
                 <style type="text/css">
             body { color: #FFFFFF; background-color: #808080; font-family: optima, verdana, futura, "lucida sans", arial, geneva, helvetica, sans; font-size: 12px; line-height: 18px; } a:link, a:active, a:visited { color: #FFFFFF; } a.dir-view:link, a.dir-view:active, a.dir-view:visited { color: #FFFFFF; text-decoration: underline; } .valid { color: #00FF00; } .invalid { color: #FF0000; } .invisible { visibility: hidden; } button, .commonlink, .smallbutton { font-weight: bold; font-size: 12px; text-decoration: none; color: #000000; border-color: #7F7F7F; border-style: solid; border-width: .125ex; background-color: #FFFFFF; padding: .5ex; } .smallbutton { width: 1em; } a.commonlink:link, a.commonlink:active, a.commonlink:visited, a.smalllink:link, a.smalllink:active, a.smalllink:visited { font-weight: bold; font-size: 12px; text-decoration: none; color: #000000; } h1, .title { font-style: normal; font-weight: normal; font-size: 18px; line-height: 18px; margin-bottom: 20px; } h2, .subtitle { font-style: normal; font-weight: normal; font-size: 12px; margin-top: 18px; margin-bottom: 18px; } table { line-height: 18px; font-size: 12px; margin: 0; } th { font-weight: bold; text-align: left; padding-bottom: 6px; } .tc { font-weight: bold; text-align: left; } p, li { max-width: 60em; } .empty-line { margin-top: 4px; } .more-room { margin-right: 1.5em; } .much-more-room { margin-right: 3em; } #main { position: absolute; left: 10%; top: 10%; right: 10%; bottom: 10%; z-index: 2; width: 80%; height: 80%; padding: 0%; margin: 0%; overflow: auto; border-style: none; border-width: 0; background-color: #3F3F3F; } #main-settings { margin: 12px; x_max-width: 60em; line-height: 18px; font-size: 12px; } #left { position: absolute; top : 10%; left: 0%; bottom: 0%; right: 90%; z-index: 1; width: 10%; height: 90%; padding: 0%; margin: 0%; font-size: 16px; border-style: none; border-width: 0; background-color: #4F6F6F; } #right { position: absolute; top : 0%; left: 90%; bottom: 10%; right: 0%; z-index: 1; width: 10%; height: 90!
 %; padding: 0%; margin: 0%; font-size: 16px; border-style: none; border-width: 0; background-color: #4F6F6F; _margin-left: -15px; } #bottom { position: absolute; left: 10%; right: 0%; top: 90%; bottom: 0%; z-index: 1; width: 90%; height: 10%; padding: 0%; margin: 0%; font-size: 16px; border-style: none; border-width: 0; background-color: #6F6F8F; } #top { position: absolute; left: 0%; right: 10%; top: 0%; bottom: 90%; z-index: 1; width: 90%; height: 10%; padding: 0%; margin: 0%; font-size: 16px; border-style: none; border-width: 0; background-color: #6F6F8F; } #top-one { position: absolute; bottom: 50%; width: 100%; buggedheight: 100%; } #top-two { position: relative; margin-bottom: -9px; margin-left: 12px; margin-right: 12px; line-height: 18px; text-align: right; vertical-align: middle; } #bottom-one { position: absolute; bottom: 50%; width: 100%; buggedheight: 100%; } #bottom-two { position: relative; margin-bottom: -9px; margin-left: 12px; margin-right: 12px; line-height: 18px; text-align: left; vertical-align: middle; } #left-one { position: absolute; width: 100%; buggedheight: 100%; } #left-two { position: relative; margin-top: 12px; line-height: 18px; text-align: center; vertical-align: top; } #right-one { display: table; height: 100%; width: 100%; } #right-two { display: table-row; height: 100%; width: 100%; } #right-three { display: table-cell; width: 100%; vertical-align: bottom; _position: absolute; _top: 100%; } #right-four { text-align: center; margin-bottom: 2ex; _position: relative; _top: -100%; } #more-top { position: absolute; top: 0%; left: 90%; bottom: 90%; right: 0%; z-index: 3; width: 10%; height: 10%; padding: 0%; margin: 0%; border-style: none; border-width: 0; } #more-top-settings { text-align: center; } #more-right-settings { margin-right: 12px; margin-left: 12px; line-height: 18px; font-size: 10px; text-align: center; } #right-safari { _display: table; width: 100%; height: 100%; } 
@@ -24,7 +24,7 @@
                     </head>
         <body>
             <div id="top">            <div id="top-one">
-                <div id="top-two">ConTeXt Font Database Management 0.21 </div>
+                <div id="top-two">ConTeXt Font Database Management 1.22 </div>
             </div>
         </div>
         <div id="bottom">            <div id="bottom-one">
@@ -57,6 +57,9 @@
         <tr><th>--statistics</th><td></td><td>some info about the database</td></tr>
         <tr><th>--names</th><td></td><td>use name instead of unicodes</td></tr>
         <tr><th>--cache</th><td>str</td><td>use specific cache (otl or otf)</td></tr>
+        <tr><th/><td/><td/></tr>
+        <tr><th>--pattern</th><td>str</td><td>filter files using pattern</td></tr>
+        <tr><th>--coverage</th><td>str</td><td>character list</td></tr>
     </table>
 <br/>
 <h1>Examples</h1>
@@ -77,6 +80,8 @@
 <br/><tt>mtxrun --script font --list --file --pattern=*somename*</tt>
 <br/><br/><tt>mtxrun --script font --convert texgyrepagella-regular.otf</tt>
 <br/><tt>mtxrun --script font --convert --names texgyrepagella-regular.otf</tt>
+<br/><br/><tt>mtxrun --script font --coverage="U+123 U+124" --pattern=texgyre*</tt>
+<br/><tt>mtxrun --script font --coverage="✓"</tt>
 <br/><br/>            </div>
         </div>
         </body>

Modified: trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-fonts.man
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-fonts.man	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-fonts.man	2025-02-19 22:48:50 UTC (rev 74156)
@@ -1,4 +1,4 @@
-.TH "mtx-fonts" "1" "01-01-2024" "version 1.00" "ConTeXt Font Database Management"
+.TH "mtx-fonts" "1" "01-01-2025" "version 1.21" "ConTeXt Font Database Management"
 .SH NAME
  mtx-fonts - ConTeXt Font Database Management
 .SH SYNOPSIS
@@ -55,6 +55,12 @@
 .TP
 .B --cache=str
 use specific cache (otl or otf)
+.TP
+.B --pattern=str
+filter files using pattern
+.TP
+.B --coverage=str
+character list
 .SH AUTHOR
 More information about ConTeXt and the tools that come with it can be found at:
 

Modified: trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-fonts.xml
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-fonts.xml	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-fonts.xml	2025-02-19 22:48:50 UTC (rev 74156)
@@ -3,7 +3,7 @@
  <metadata>
   <entry name="name">mtx-fonts</entry>
   <entry name="detail">ConTeXt Font Database Management</entry>
-  <entry name="version">1.00</entry>
+  <entry name="version">1.21</entry>
  </metadata>
  <flags>
   <category name="basic">
@@ -30,6 +30,10 @@
     <flag name="names"><short>use name instead of unicodes</short></flag>
     <flag name="cache" value="str"><short>use specific cache (otl or otf)</short></flag>
    </subcategory>
+   <subcategory>
+    <flag name="pattern" value="str"><short>filter files using pattern</short></flag>
+    <flag name="coverage" value="str"><short>character list</short></flag>
+   </subcategory>
   </category>
  </flags>
  <examples>
@@ -64,6 +68,10 @@
     <example><command>mtxrun --script font --convert texgyrepagella-regular.otf</command></example>
     <example><command>mtxrun --script font --convert --names texgyrepagella-regular.otf</command></example>
    </subcategory>
+   <subcategory>
+    <example><command>mtxrun --script font --coverage="U+123 U+124" --pattern=texgyre*</command></example>
+    <example><command>mtxrun --script font --coverage="✓"</command></example>
+   </subcategory>
   </category>
  </examples>
 </application>

Modified: trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-grep.html
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-grep.html	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-grep.html	2025-02-19 22:48:50 UTC (rev 74156)
@@ -41,6 +41,7 @@
         <tr><th/><td/><td/></tr>
         <tr><th>--pattern</th><td></td><td>search for pattern (optional)</td></tr>
         <tr><th>--count</th><td></td><td>count matches only</td></tr>
+        <tr><th>--all</th><td></td><td>count all occurences in a line</td></tr>
         <tr><th>--nocomment</th><td></td><td>skip lines that start with %% or #</td></tr>
         <tr><th>--noattic</th><td></td><td>skip files that hh considers irrelevant</td></tr>
         <tr><th>--n</th><td></td><td>show at most n matches</td></tr>

Modified: trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-grep.man
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-grep.man	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-grep.man	2025-02-19 22:48:50 UTC (rev 74156)
@@ -1,4 +1,4 @@
-.TH "mtx-grep" "1" "01-01-2024" "version 0.10" "Simple Grepper"
+.TH "mtx-grep" "1" "01-01-2025" "version 0.10" "Simple Grepper"
 .SH NAME
  mtx-grep - Simple Grepper
 .SH SYNOPSIS
@@ -17,6 +17,9 @@
 .B --count
 count matches only
 .TP
+.B --all
+count all occurences in a line
+.TP
 .B --nocomment
 skip lines that start with %% or #
 .TP

Modified: trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-grep.xml
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-grep.xml	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-grep.xml	2025-02-19 22:48:50 UTC (rev 74156)
@@ -10,6 +10,7 @@
    <subcategory>
     <flag name="pattern"><short>search for pattern (optional)</short></flag>
     <flag name="count"><short>count matches only</short></flag>
+    <flag name="all"><short>count all occurences in a line</short></flag>
     <flag name="nocomment"><short>skip lines that start with %% or #</short></flag>
     <flag name="noattic"><short>skip files that hh considers irrelevant</short></flag>
     <flag name="n"><short>show at most n matches</short></flag>

Modified: trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-install-modules.man
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-install-modules.man	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-install-modules.man	2025-02-19 22:48:50 UTC (rev 74156)
@@ -1,4 +1,4 @@
-.TH "mtx-install" "1" "01-01-2024" "version 2.01" "ConTeXt Installer"
+.TH "mtx-install" "1" "01-01-2025" "version 2.01" "ConTeXt Installer"
 .SH NAME
  mtx-install - ConTeXt Installer
 .SH SYNOPSIS

Modified: trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-install.man
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-install.man	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-install.man	2025-02-19 22:48:50 UTC (rev 74156)
@@ -1,4 +1,4 @@
-.TH "mtx-install" "1" "01-01-2024" "version 2.01" "ConTeXt Installer"
+.TH "mtx-install" "1" "01-01-2025" "version 2.01" "ConTeXt Installer"
 .SH NAME
  mtx-install - ConTeXt Installer
 .SH SYNOPSIS

Modified: trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-interface.html
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-interface.html	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-interface.html	2025-02-19 22:48:50 UTC (rev 74156)
@@ -39,10 +39,6 @@
 <table>
     <tr><th style="width: 10em">flag</th><th style="width: 8em">value</th><th>description</th></tr>
         <tr><th/><td/><td/></tr>
-        <tr><th>--interfaces</th><td></td><td>generate context mkii interface files</td></tr>
-        <tr><th/><td/><td/></tr>
-        <tr><th>--context</th><td></td><td>equals --interfaces --messages --languages</td></tr>
-        <tr><th/><td/><td/></tr>
         <tr><th>--scite</th><td></td><td>generate scite interface</td></tr>
         <tr><th>--bbedit</th><td></td><td>generate bbedit interface files</td></tr>
         <tr><th>--jedit</th><td></td><td>generate jedit interface files</td></tr>

Modified: trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-interface.man
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-interface.man	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-interface.man	2025-02-19 22:48:50 UTC (rev 74156)
@@ -1,4 +1,4 @@
-.TH "mtx-interface" "1" "01-01-2024" "version 0.13" "ConTeXt Interface Related Goodies"
+.TH "mtx-interface" "1" "01-01-2025" "version 0.13" "ConTeXt Interface Related Goodies"
 .SH NAME
  mtx-interface - ConTeXt Interface Related Goodies
 .SH SYNOPSIS
@@ -11,12 +11,6 @@
 .B ConTeXt Interface Related Goodies
 .SH OPTIONS
 .TP
-.B --interfaces
-generate context mkii interface files
-.TP
-.B --context
-equals --interfaces --messages --languages
-.TP
 .B --scite
 generate scite interface
 .TP

Modified: trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-interface.xml
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-interface.xml	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-interface.xml	2025-02-19 22:48:50 UTC (rev 74156)
@@ -8,12 +8,6 @@
  <flags>
   <category name="basic">
    <subcategory>
-    <flag name="interfaces"><short>generate context mkii interface files</short></flag>
-   </subcategory>
-   <subcategory>
-    <flag name="context"><short>equals <ref name="interfaces"/> <ref name="messages"/> <ref name="languages"/></short></flag>
-   </subcategory>
-   <subcategory>
     <flag name="scite"><short>generate scite interface</short></flag>
     <flag name="bbedit"><short>generate bbedit interface files</short></flag>
     <flag name="jedit"><short>generate jedit interface files</short></flag>

Modified: trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-kpse.man
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-kpse.man	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-kpse.man	2025-02-19 22:48:50 UTC (rev 74156)
@@ -1,4 +1,4 @@
-.TH "mtx-kpse" "1" "01-01-2024" "version 1.00" "ConTeXt KPSE checking utility"
+.TH "mtx-kpse" "1" "01-01-2025" "version 1.00" "ConTeXt KPSE checking utility"
 .SH NAME
  mtx-kpse - ConTeXt KPSE checking utility
 .SH SYNOPSIS

Modified: trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-metapost.man
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-metapost.man	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-metapost.man	2025-02-19 22:48:50 UTC (rev 74156)
@@ -1,4 +1,4 @@
-.TH "mtx-metapost" "1" "01-01-2024" "version 0.10" "MetaPost to PDF processor"
+.TH "mtx-metapost" "1" "01-01-2025" "version 0.10" "MetaPost to PDF processor"
 .SH NAME
  mtx-metapost - MetaPost to PDF processor
 .SH SYNOPSIS

Modified: trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-modules.man
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-modules.man	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-modules.man	2025-02-19 22:48:50 UTC (rev 74156)
@@ -1,4 +1,4 @@
-.TH "mtx-modules" "1" "01-01-2024" "version 1.00" "ConTeXt Module Documentation Generators"
+.TH "mtx-modules" "1" "01-01-2025" "version 1.00" "ConTeXt Module Documentation Generators"
 .SH NAME
  mtx-modules - ConTeXt Module Documentation Generators
 .SH SYNOPSIS

Modified: trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-package.man
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-package.man	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-package.man	2025-02-19 22:48:50 UTC (rev 74156)
@@ -1,4 +1,4 @@
-.TH "mtx-package" "1" "01-01-2024" "version 0.10" "Distribution Related Goodies"
+.TH "mtx-package" "1" "01-01-2025" "version 0.10" "Distribution Related Goodies"
 .SH NAME
  mtx-package - Distribution Related Goodies
 .SH SYNOPSIS

Modified: trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-patterns.man
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-patterns.man	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-patterns.man	2025-02-19 22:48:50 UTC (rev 74156)
@@ -1,4 +1,4 @@
-.TH "mtx-patterns" "1" "01-01-2024" "version 0.20" "ConTeXt Pattern File Management"
+.TH "mtx-patterns" "1" "01-01-2025" "version 0.20" "ConTeXt Pattern File Management"
 .SH NAME
  mtx-patterns - ConTeXt Pattern File Management
 .SH SYNOPSIS

Modified: trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-pdf.html
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-pdf.html	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-pdf.html	2025-02-19 22:48:50 UTC (rev 74156)
@@ -46,9 +46,12 @@
         <tr><th>--fonts</th><td></td><td>show used fonts (--detail)</td></tr>
         <tr><th>--object</th><td></td><td>show object</td></tr>
         <tr><th>--links</th><td></td><td>show links</td></tr>
+        <tr><th>--highlights</th><td></td><td>show highlights</td></tr>
+        <tr><th>--comments</th><td></td><td>show comments</td></tr>
         <tr><th>--sign</th><td></td><td>sign document (assumes signature template)</td></tr>
         <tr><th>--verify</th><td></td><td>verify document</td></tr>
         <tr><th>--detail</th><td></td><td>print detail to the console</td></tr>
+        <tr><th>--userdata</th><td></td><td>print userdata to the console</td></tr>
         <tr><th/><td/><td/></tr>
     </table>
 <br/>

Modified: trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-pdf.man
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-pdf.man	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-pdf.man	2025-02-19 22:48:50 UTC (rev 74156)
@@ -1,4 +1,4 @@
-.TH "mtx-pdf" "1" "01-01-2024" "version 0.10" "ConTeXt PDF Helpers"
+.TH "mtx-pdf" "1" "01-01-2025" "version 0.10" "ConTeXt PDF Helpers"
 .SH NAME
  mtx-pdf - ConTeXt PDF Helpers
 .SH SYNOPSIS
@@ -32,6 +32,12 @@
 .B --links
 show links
 .TP
+.B --highlights
+show highlights
+.TP
+.B --comments
+show comments
+.TP
 .B --sign
 sign document (assumes signature template)
 .TP
@@ -40,6 +46,9 @@
 .TP
 .B --detail
 print detail to the console
+.TP
+.B --userdata
+print userdata to the console
 .SH AUTHOR
 More information about ConTeXt and the tools that come with it can be found at:
 

Modified: trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-pdf.xml
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-pdf.xml	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-pdf.xml	2025-02-19 22:48:50 UTC (rev 74156)
@@ -15,9 +15,12 @@
     <flag name="fonts"><short>show used fonts (<ref name="detail"/>)</short></flag>
     <flag name="object"><short>show object</short></flag>
     <flag name="links"><short>show links</short></flag>
+    <flag name="highlights"><short>show highlights</short></flag>
+    <flag name="comments"><short>show comments</short></flag>
     <flag name="sign"><short>sign document (assumes signature template)</short></flag>
     <flag name="verify"><short>verify document</short></flag>
     <flag name="detail"><short>print detail to the console</short></flag>
+    <flag name="userdata"><short>print userdata to the console</short></flag>
    </subcategory>
    <subcategory>
     <example><command>mtxrun --script pdf --info foo.pdf</command></example>
@@ -27,6 +30,7 @@
     <example><command>mtxrun --script pdf --sign --certificate=somesign.pem --password=test --uselibrary somefile</command></example>
     <example><command>mtxrun --script pdf --verify --certificate=somesign.pem --password=test --uselibrary somefile</command></example>
     <example><command>mtxrun --script pdf --detail=nofpages somefile</command></example>
+    <example><command>mtxrun --script pdf --userdata=keylist [--format=lua|json|lines] somefile</command></example>
    </subcategory>
   </category>
  </flags>

Modified: trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-plain.man
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-plain.man	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-plain.man	2025-02-19 22:48:50 UTC (rev 74156)
@@ -1,4 +1,4 @@
-.TH "mtx-plain" "1" "01-01-2024" "version 1.00" "Plain TeX Runner"
+.TH "mtx-plain" "1" "01-01-2025" "version 1.00" "Plain TeX Runner"
 .SH NAME
  mtx-plain - Plain TeX Runner
 .SH SYNOPSIS

Modified: trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-profile.man
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-profile.man	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-profile.man	2025-02-19 22:48:50 UTC (rev 74156)
@@ -1,4 +1,4 @@
-.TH "mtx-profile" "1" "01-01-2024" "version 1.00" "ConTeXt MkIV LuaTeX Profiler"
+.TH "mtx-profile" "1" "01-01-2025" "version 1.00" "ConTeXt MkIV LuaTeX Profiler"
 .SH NAME
  mtx-profile - ConTeXt MkIV LuaTeX Profiler
 .SH SYNOPSIS

Modified: trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-rsync.man
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-rsync.man	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-rsync.man	2025-02-19 22:48:50 UTC (rev 74156)
@@ -1,4 +1,4 @@
-.TH "mtx-rsync" "1" "01-01-2024" "version 0.10" "Rsync Helpers"
+.TH "mtx-rsync" "1" "01-01-2025" "version 0.10" "Rsync Helpers"
 .SH NAME
  mtx-rsync - Rsync Helpers
 .SH SYNOPSIS

Modified: trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-scite.man
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-scite.man	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-scite.man	2025-02-19 22:48:50 UTC (rev 74156)
@@ -1,4 +1,4 @@
-.TH "mtx-scite" "1" "01-01-2024" "version 1.00" "Scite Helper Script"
+.TH "mtx-scite" "1" "01-01-2025" "version 1.00" "Scite Helper Script"
 .SH NAME
  mtx-scite - Scite Helper Script
 .SH SYNOPSIS

Modified: trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-server.man
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-server.man	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-server.man	2025-02-19 22:48:50 UTC (rev 74156)
@@ -1,4 +1,4 @@
-.TH "mtx-server" "1" "01-01-2024" "version 0.10" "Simple Webserver For Helpers"
+.TH "mtx-server" "1" "01-01-2025" "version 0.10" "Simple Webserver For Helpers"
 .SH NAME
  mtx-server - Simple Webserver For Helpers
 .SH SYNOPSIS

Modified: trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-spell.man
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-spell.man	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-spell.man	2025-02-19 22:48:50 UTC (rev 74156)
@@ -1,4 +1,4 @@
-.TH "mtx-spell" "1" "01-01-2024" "version 0.10" "ConTeXt Word Filtering"
+.TH "mtx-spell" "1" "01-01-2025" "version 0.10" "ConTeXt Word Filtering"
 .SH NAME
  mtx-spell - ConTeXt Word Filtering
 .SH SYNOPSIS

Modified: trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-synctex.man
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-synctex.man	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-synctex.man	2025-02-19 22:48:50 UTC (rev 74156)
@@ -1,4 +1,4 @@
-.TH "mtx-synctex" "1" "01-01-2024" "version 1.01" "SyncTeX Checker"
+.TH "mtx-synctex" "1" "01-01-2025" "version 1.01" "SyncTeX Checker"
 .SH NAME
  mtx-synctex - SyncTeX Checker
 .SH SYNOPSIS

Modified: trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-texworks.man
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-texworks.man	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-texworks.man	2025-02-19 22:48:50 UTC (rev 74156)
@@ -1,4 +1,4 @@
-.TH "mtx-texworks" "1" "01-01-2024" "version 1.00" "TeXworks Startup Script"
+.TH "mtx-texworks" "1" "01-01-2025" "version 1.00" "TeXworks Startup Script"
 .SH NAME
  mtx-texworks - TeXworks Startup Script
 .SH SYNOPSIS

Modified: trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-tools.man
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-tools.man	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-tools.man	2025-02-19 22:48:50 UTC (rev 74156)
@@ -1,4 +1,4 @@
-.TH "mtx-tools" "1" "01-01-2024" "version 1.01" "Some File Related Goodies"
+.TH "mtx-tools" "1" "01-01-2025" "version 1.01" "Some File Related Goodies"
 .SH NAME
  mtx-tools - Some File Related Goodies
 .SH SYNOPSIS

Modified: trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-unicode.man
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-unicode.man	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-unicode.man	2025-02-19 22:48:50 UTC (rev 74156)
@@ -1,4 +1,4 @@
-.TH "mtx-unicode" "1" "01-01-2024" "version 1.02" "Checker for char-dat.lua"
+.TH "mtx-unicode" "1" "01-01-2025" "version 1.02" "Checker for char-dat.lua"
 .SH NAME
  mtx-unicode - Checker for char-dat.lua
 .SH SYNOPSIS

Modified: trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-unzip.man
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-unzip.man	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-unzip.man	2025-02-19 22:48:50 UTC (rev 74156)
@@ -1,4 +1,4 @@
-.TH "mtx-unzip" "1" "01-01-2024" "version 0.10" "Simple Unzipper"
+.TH "mtx-unzip" "1" "01-01-2025" "version 0.10" "Simple Unzipper"
 .SH NAME
  mtx-unzip - Simple Unzipper
 .SH SYNOPSIS

Modified: trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-update.man
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-update.man	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-update.man	2025-02-19 22:48:50 UTC (rev 74156)
@@ -1,4 +1,4 @@
-.TH "mtx-update" "1" "01-01-2024" "version 1.03" "ConTeXt Minimals Updater"
+.TH "mtx-update" "1" "01-01-2025" "version 1.03" "ConTeXt Minimals Updater"
 .SH NAME
  mtx-update - ConTeXt Minimals Updater
 .SH SYNOPSIS

Modified: trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-vscode.man
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-vscode.man	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-vscode.man	2025-02-19 22:48:50 UTC (rev 74156)
@@ -1,4 +1,4 @@
-.TH "mtx-vscode" "1" "01-01-2024" "version 1.00" "vscode extension generator"
+.TH "mtx-vscode" "1" "01-01-2025" "version 1.00" "vscode extension generator"
 .SH NAME
  mtx-vscode - vscode extension generator
 .SH SYNOPSIS

Modified: trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-watch.man
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-watch.man	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-watch.man	2025-02-19 22:48:50 UTC (rev 74156)
@@ -1,4 +1,4 @@
-.TH "mtx-watch" "1" "01-01-2024" "version 1.00" "ConTeXt Request Watchdog"
+.TH "mtx-watch" "1" "01-01-2025" "version 1.00" "ConTeXt Request Watchdog"
 .SH NAME
  mtx-watch - ConTeXt Request Watchdog
 .SH SYNOPSIS

Modified: trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-youless.man
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-youless.man	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtx-youless.man	2025-02-19 22:48:50 UTC (rev 74156)
@@ -1,4 +1,4 @@
-.TH "mtx-youless" "1" "01-01-2024" "version 1.100" "youless Fetcher"
+.TH "mtx-youless" "1" "01-01-2025" "version 1.100" "youless Fetcher"
 .SH NAME
  mtx-youless - youless Fetcher
 .SH SYNOPSIS

Modified: trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtxrun.man
===================================================================
--- trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtxrun.man	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/scripts/mkiv/mtxrun.man	2025-02-19 22:48:50 UTC (rev 74156)
@@ -1,4 +1,4 @@
-.TH "mtxrun" "1" "01-01-2024" "version 1.33" "ConTeXt TDS Runner Tool"
+.TH "mtxrun" "1" "01-01-2025" "version 1.33" "ConTeXt TDS Runner Tool"
 .SH NAME
  mtxrun - ConTeXt TDS Runner Tool
 .SH SYNOPSIS

Added: trunk/Master/texmf-dist/doc/context/sources/general/manuals/beyond/beyond-contents.tex
===================================================================
--- trunk/Master/texmf-dist/doc/context/sources/general/manuals/beyond/beyond-contents.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/context/sources/general/manuals/beyond/beyond-contents.tex	2025-02-19 22:48:50 UTC (rev 74156)
@@ -0,0 +1,13 @@
+% language=us runpath=texruns:manuals/beyond
+
+\startcomponent beyond-contents
+
+\environment beyond-style
+
+\starttitle[title={Table of contents}]
+
+    \placelist[chapter]
+
+\stoptitle
+
+\stopcomponent


Property changes on: trunk/Master/texmf-dist/doc/context/sources/general/manuals/beyond/beyond-contents.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/context/sources/general/manuals/beyond/beyond-introduction.tex
===================================================================
--- trunk/Master/texmf-dist/doc/context/sources/general/manuals/beyond/beyond-introduction.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/context/sources/general/manuals/beyond/beyond-introduction.tex	2025-02-19 22:48:50 UTC (rev 74156)
@@ -0,0 +1,27 @@
+% language=us runpath=texruns:manuals/beyond
+
+\startcomponent beyond-introduction
+
+\environment beyond-style
+
+\startchapter[title={Introduction}]
+
+This is the eights wrapup of the \LUATEX\ and \LUAMETATEX\ development cycle. The
+last one was ontarget and focussed on what we did when the engine got mature.
+This time we zoom in on developments that go a bit beyond what we originally
+planned. One can argue that for instance some of the math extensions should have
+ended up here but for us a turning point was when additional par passes became
+stable, which was around the time of the 2024 \CONTEXT\ meeting. We'll see what
+comes after that.
+
+\blank[2*big]
+
+\startlines
+Hans Hagen
+Hasselt NL
+August 2024\high{++}
+\stoplines
+
+\stopchapter
+
+\stopcomponent


Property changes on: trunk/Master/texmf-dist/doc/context/sources/general/manuals/beyond/beyond-introduction.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/context/sources/general/manuals/beyond/beyond-namespaces.tex
===================================================================
--- trunk/Master/texmf-dist/doc/context/sources/general/manuals/beyond/beyond-namespaces.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/context/sources/general/manuals/beyond/beyond-namespaces.tex	2025-02-19 22:48:50 UTC (rev 74156)
@@ -0,0 +1,195 @@
+% language=us runpath=texruns:manuals/beyond
+
+\startcomponent beyond-namespaces
+
+\environment beyond-style
+
+\startchapter[title={Namespaces},author=Hans Hagen]
+
+Occasionally on \TEX\ related mailing lists, meetings, articles or forums
+performance comes up. It makes no sense for me to go into the specific (assumed)
+bottlenecks mentioned but as in \CONTEXT\ we do keep an eye on performance every
+now and then I also spend words on it, so here are some.
+
+The nature of the (multilingual) user interface of \CONTEXT\ there is extensive
+use of the \type {\csname} and related primitives. For instance, if we have the
+namespace \type {999>} and a keyword \typ {testkeyword}, we can have a specific
+property set with:
+
+\starttyping
+\expandafter\def\csname 999>testkeyword\endcsname{}
+\stoptyping
+
+We can then test if a macro with the inaccessible name \quote {999>testkeyword}
+exists and has been set with a test command available in all engines that carry
+\ETEX\ extensions:
+
+\starttyping
+\ifcsname 999>testkeyword\endcsname
+    % whatever
+\fi
+\stoptyping
+
+In order to test this, the list of tokens starting at \type {9} and ending at
+\type {d} has to be converted into a (\CCODE) string that is used for a hash
+lookup. One can expect this to be a costly operation. In a 300 page book with
+many thousands of formulas this easily runs into the millions. Testing this five
+times on one million such tests gives:
+
+\starttyping
+0.303 0.293 0.283 0.301 0.298
+\stoptyping
+
+for \LUAMETATEX\ and
+
+\starttyping
+0.276 0.287 0.287 0.274 0.274
+\stoptyping
+
+for \LUATEX. I deliberately show five numbers because one has to keep some system
+load into account. When I'm interested in performance I only care about trends
+because no run ever gets the whole machine for its job. That said, where does the
+noticeable difference between these engines come from? It can partly be explained
+by \LUAMETATEX\ having more primitives and therefore a bit more overhead (more
+scattered code in memory and \CPU\ cache). But as the basic code that kicks in
+here is not that much different I figured that it might be the hash lookup and,
+because indeed we had a follow up lookup in the hash (two steps), by using a
+larger hash table we could limit that to a direct hit.
+
+\starttyping
+0.288 0.281 0.280 0.288 0.277
+\stoptyping
+
+So we ended up with similar measurements for these engines. Before we carry on,
+let's ask ourselves if these numbers worry us. Say that this book takes 12
+seconds to process, does it matter much if we half this overhead? Probably not,
+but in the following, we need to keep in mind that much can interfere. A simple
+million times test is likely very \CPU\ cache friendly. There are however other
+factors in play: convenience coding, abstraction, less cluttered tracing, more
+detailed feedback from the engine, less code and memory usage, the size of the
+format file. Trying to get lower numbers is also kind of fun.
+
+Back to the user interface, we now introduce some abstraction (the \type {test}
+in the names avoids clashes with existing definitions):
+
+\starttyping
+\def\??testfoo    {999>}
+\def\c!testkeyword{keyword}
+
+\ifcsname\??testfoo\c!testkeyword\endcsname
+    % whatever
+\fi
+\stoptyping
+
+Again \LUAMETATEX\ is a little slower but it is kind of noise:
+
+\starttyping
+0.243 0.243 0.247 0.241 0.249 luatex
+0.251 0.250 0.250 0.249 0.249 luametatex
+\stoptyping
+
+But how about the following timings for \LUAMETATEX:
+
+\starttyping
+0.136 0.143 0.139 0.139 0.140
+0.132 0.132 0.133 0.129 0.130
+\stoptyping
+
+In the first case we defined the namespace and keyword as follows:
+
+\starttyping
+\cdef\??testfoo    {999>}
+\cdef\c!testkeyword{keyword}
+\stoptyping
+
+A \type {\cdef}'s macro is basically an \type {\edef}. This definition is scanned
+as token list and therefore we know the macro has no arguments. It operates as
+any macro but in a \type {\csname} related command it is just passes as|-|is and
+only expanded when we need to do a lookup. When that happens we don't need to go
+through a token list (copy) but directly can go to string characters.
+
+The second measurement shows a little improvement and is the outcome from an
+experiment with build in namespaces. Think of this:
+
+\starttyping
+\namespaceifcsnamedef\iftestfoocsname 999
+
+\iftestfoocsname\c!testkeyword\endcsname
+    % whatever
+\fi
+\stoptyping
+
+That variant is faster but we're talking .05 second on 2.5 million calls in the
+book because we already use \type {\cdef}. Even more important is to notice that
+most documents have only tens of thousands such calls. And 0.15 seconds csname
+\quotation {test and call} on the whole run is not that bad. So, if we go beyond
+\type {\cdef} usage we don't need the efficiency argument but the other ones. So,
+after a few days of playing with this I rejected this solution. First of all the
+source didn't become more readable. We also had many more commands because there
+were for instance:
+
+% \namespacestring 999
+
+\starttyping
+\namespacecsnamedef     \csnamefoo      999
+\namespacedefcsnamedef  \defcsnamefoo   999
+\namespaceifcsnamedef   \ifcsnamefoo    999
+\namespacebegincsnamedef\begincsnamefoo 999
+\stoptyping
+
+We also had a callback for reporting associated names when tracing. Of course
+there can be use cases where we have tens of millions of \type {\csname} calls
+but I still need to find them. But don't expect miracles now that we're in these
+low numbers. Integrating all this is also not that trivial because \TEX\ has two
+separated code paths for expandable commands and ones more related to
+housekeeping and typesetting (the mail loop). This means that one has to
+intercept expansion of encoded namespaces and that gives a bit of a mess,
+especially because we also need to handle nested csnames.
+
+As an aside I also played a bit with \quote {compiling} regular csname commands
+followed by a namespace into one token but that was even more messier. \footnote
+{Occasionally I consider some compilation of tokens lists into more efficient
+ones but so far I could resist.} So in the end I removed all that experimental
+namespace code and happily accept the fact that there's nothing to gain, but it
+was a fun experiment.
+
+As a side effect of this experiment I decided to enable a primitive that had been
+commented. When it was tested years ago there was no real gain but I realized that
+it could be implemented a bit more efficient in specific scenarios. Think of this:
+
+\starttyping
+\csname\ifcsname999>foobar:width\endcsname999>foo:width\fi\endcsname
+\stoptyping
+
+when abstracted becomes:
+
+\starttyping
+\csname\ifcsname\??testme foobar:\c!width\endcsname\??testme foo:\c!width\fi\endcsname
+\stoptyping
+
+In both cases the same list of tokens (\typ {\??testme foobar:\c!width}) has to
+be converted into a byte string, which we can avoid by:
+
+\starttyping
+\csname\ifcsname\??testme foobar:\c!width\endcsname\csnamestring\fi\endcsname
+\stoptyping
+
+when we have a hit. After all, the found macro has a known name that has been
+registered as a string. This variant runs over 10 percent faster, which of course
+can be neglected, especially if we don't call it millions of times; the book has
+400.000 calls to \typ {\csnamestring}. But as with many optimizations: gaining 20
+times 0.1 seconds on different subsystems eventually adds up to 20 \percent\ on a
+10 seconds run for that 300 page, math extensive, book.
+
+When looking at timings one always need to keep in mind that a simple test (in a
+loop) is very easy on the \CPU\ cache while in a real document there can be more
+cache misses simply because the cache is limited in size. That is why in practice
+we often see a bit more positive impact than shown here. In the case of the \typ
+{\csnamestring} we not only gain a bit on parameter handling but also on some
+font related operations, but again the gain depends on how many (more complex)
+font switches happen, which is more likely in for instance manuals.
+
+\stopchapter
+
+\stopcomponent
+


Property changes on: trunk/Master/texmf-dist/doc/context/sources/general/manuals/beyond/beyond-namespaces.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/context/sources/general/manuals/beyond/beyond-style.tex
===================================================================
--- trunk/Master/texmf-dist/doc/context/sources/general/manuals/beyond/beyond-style.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/context/sources/general/manuals/beyond/beyond-style.tex	2025-02-19 22:48:50 UTC (rev 74156)
@@ -0,0 +1,91 @@
+% language=us runpath=texruns:manuals/beyond
+
+\startenvironment beyond-style
+
+% copied from ontarget but it might evolve
+
+\usemodule[abbreviations-smallcaps]
+\usemodule[scite]
+
+\logo [LUAMETATEX] {LuaMeta\TeXsuffix}
+
+\definefontfeature
+  [default]
+  [default]
+  [expansion=quality]
+
+\setupbodyfont[plex,12pt]
+
+\setuplayout
+  [width=middle,
+   height=middle,
+   header=0pt,
+   footer=1cm,
+   footerdistance=5mm,
+   backspace=20mm,
+   cutspace=25mm,
+   topspace=2cm,
+   bottomspace=1cm,
+   style=bold,
+   color=maincolor]
+
+\setuppagenumbering
+  [alternative=doublesided]
+
+\setupwhitespace
+  [big]
+
+\setupfootertexts
+  [][{\getmarking[chapter]\quad\pagenumber}]
+  [{\pagenumber\quad\getmarking[chapter]}][]
+
+\definecolor
+  [maincolor]
+  [darkblue]
+
+\definecolor
+  [bgcolor]
+  [s=0.95]
+
+\protected\def\startexample{\startimage\backgroundvtop[bgcolor]\bgroup}
+\protected\def\stopexample {\egroup\stopimage}
+
+\setuphead
+  [chapter]
+  [style=\ss\bfc,
+   color=maincolor]
+
+\setuphead
+  [section]
+  [style=\ss\bfa,
+   color=maincolor]
+
+\setuphead
+  [subsection]
+  [style=\ss\bf,
+   color=maincolor]
+
+\setupalign
+  [tolerant,xstretch]
+
+\setuptyping
+  [color=maincolor,
+   align=hangright]
+
+\setuptype
+  [color=maincolor]
+
+\setupitemize
+  [color=maincolor]
+
+\setupcaption
+  [figure]
+  [headstyle=sans,
+   style=small,
+   headcolor=maincolor,
+   maxwidth=.9\textwidth]
+
+\setupcombination
+  [style=small]
+
+\stopenvironment


Property changes on: trunk/Master/texmf-dist/doc/context/sources/general/manuals/beyond/beyond-style.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/context/sources/general/manuals/beyond/beyond-titlepage.tex
===================================================================
--- trunk/Master/texmf-dist/doc/context/sources/general/manuals/beyond/beyond-titlepage.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/context/sources/general/manuals/beyond/beyond-titlepage.tex	2025-02-19 22:48:50 UTC (rev 74156)
@@ -0,0 +1,51 @@
+% language=us runpath=texruns:manuals/beyond
+
+\startcomponent beyond-titlepage
+
+\environment beyond-style
+
+\startMPpage[pagestate=stop]
+
+StartPage ;
+
+    picture p ; p := image (
+
+        path Door ; Door :=
+            fullsquare xyscaled (10,20)
+         && fullsquare xyscaled (6,8)   shifted (0, 4.5)
+         && fullsquare xyscaled (6,8)   shifted (0,-4.5)
+         && fullsquare xyscaled (1/2,2) shifted (-5.25,6.5)
+         && fullsquare xyscaled (1/2,2) shifted (-5.25,-6.5)
+         && fullsquare xyscaled (3,1/4) shifted (2.75,1)
+        ;
+
+        Door := Door xysized (PaperWidth/10,PaperHeight/10) ;
+
+        % how to open these doors randomized
+
+        for i=1 upto 8 :
+            for j=1 upto 8 :
+                draw Door shifted ((i-.5)*(PaperWidth/8),(j-.5)*(PaperHeight/8)) ;
+            endfor
+        endfor ;
+
+    ) ;
+
+    fill Page withcolor "maincolor" ;
+
+    draw p withpen pencircle scaled 2 withcolor .6white ;
+
+    draw image (draw textext ("\glyphweight 300 BEYOND") xsized (16cm) withcolor "white")
+        shifted center bottomboundary Page
+        shifted (0mm,45mm) ;
+
+    draw image (draw textext ("\glyphweight 200 luametatex & context lmtx") xsized (13cm) withcolor "white")
+        shifted center bottomboundary Page
+        shifted (0mm,20mm) ;
+
+StopPage ;
+
+\stopMPpage
+
+\stopcomponent
+


Property changes on: trunk/Master/texmf-dist/doc/context/sources/general/manuals/beyond/beyond-titlepage.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/context/sources/general/manuals/beyond/beyond.tex
===================================================================
--- trunk/Master/texmf-dist/doc/context/sources/general/manuals/beyond/beyond.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/context/sources/general/manuals/beyond/beyond.tex	2025-02-19 22:48:50 UTC (rev 74156)
@@ -0,0 +1,27 @@
+
+% language=us runpath=texruns:manuals/beyond
+
+\environment beyond-style
+
+\dontcomplain
+
+\startdocument
+
+    \component beyond-titlepage
+
+    \startfrontmatter
+        \component beyond-contents
+    \stopfrontmatter
+
+    \startbodymatter
+        \component beyond-introduction
+      % \component beyond-paragraphs
+        \startchapter[title=A new take on paragraphs] {\em Appears first in TUGboat.} \stopchapter
+      % \component beyond-twins
+        \startchapter[title=Twins]                    {\em Appears first in TUGboat.} \stopchapter
+        \component beyond-namespaces
+      % \component beyond-bonus
+      % \component beyond-whatif
+    \stopbodymatter
+
+\stopdocument


Property changes on: trunk/Master/texmf-dist/doc/context/sources/general/manuals/beyond/beyond.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/context/sources/general/manuals/canbedone/canbedone-clipping.tex
===================================================================
--- trunk/Master/texmf-dist/doc/context/sources/general/manuals/canbedone/canbedone-clipping.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/context/sources/general/manuals/canbedone/canbedone-clipping.tex	2025-02-19 22:48:50 UTC (rev 74156)
@@ -0,0 +1,106 @@
+% language=us runpath=texruns:manuals/canbedone
+
+\environment canbedone-style
+
+% \showframe
+
+\startdocument
+  [title=clipping,
+   color=darkgreen]
+
+\startsectionlevel[title=Clipping]
+
+The feature below is rather \PDF\ specific. Inside a graphic group we
+can register text as clipping path and apply that to what follows. We show
+a few approaches:
+
+\startbuffer
+\newbox      \MyBox
+\newdimension\MyDimenA
+\newdimension\MyDimenB
+
+\setbox\MyBox\hbox{\bfd\setstrut\strut\starteffect[clip]JUST SOME TEXT\stopeffect}
+
+\MyDimenA\wd  \MyBox
+\MyDimenB\htdp\MyBox
+
+\startgraphicgroup
+    \startoverlay
+      {\box\MyBox}
+      {\externalfigure[hacker.jpg][width=\MyDimenA,height=\MyDimenB]}
+    \stopoverlay
+\stopgraphicgroup
+\stopbuffer
+
+\typebuffer[option=tex]
+
+We get:
+
+\startlinecorrection
+\getbuffer
+\stoplinecorrection
+
+Here we use a helper:
+
+\startbuffer
+\startclipeffect
+    {\hbox to 9cm{\hss\bfd\setstrut\strut
+       \starteffect[clip]JUST SOME TEXT\stopeffect\hss}}
+    {\externalfigure[hacker.jpg][width=9cm,height=1cm]}
+\stopclipeffect
+\stopbuffer
+
+\typebuffer[option=tex]
+
+We get:
+
+\startlinecorrection
+\ruledhbox{\getbuffer}
+\stoplinecorrection
+
+A bit easier is this:
+
+\startbuffer
+\defineoverlay
+  [hacker]
+  [\overlayfigure{hacker.jpg}]
+
+\startgraphicgroup
+\framed
+  [background={foreground,hacker},align={middle,lohi},width=.8tw]
+  {\starteffect[clip]\samplefile{tufte}\stopeffect}
+\stopgraphicgroup
+\stopbuffer
+
+\typebuffer[option=tex]
+
+As you see, we can use more text:
+
+\startlinecorrection
+\getbuffer
+\stoplinecorrection
+
+Finally we introduce:
+
+\startbuffer
+\defineoverlay
+  [hacker]
+  [\overlayfigure{hacker.jpg}]
+
+\startclipframed
+  [background={foreground,hacker},align={middle,lohi},width=.8tw]
+  \samplefile{ward}
+\stopclipframed
+\stopbuffer
+
+\typebuffer[option=tex]
+
+This hides most of the ugly hackery and gives:
+
+\startlinecorrection
+\getbuffer
+\stoplinecorrection
+
+\stopsectionlevel
+
+\stopdocument


Property changes on: trunk/Master/texmf-dist/doc/context/sources/general/manuals/canbedone/canbedone-clipping.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/context/sources/general/manuals/canbedone/canbedone-periods.tex
===================================================================
--- trunk/Master/texmf-dist/doc/context/sources/general/manuals/canbedone/canbedone-periods.tex	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/sources/general/manuals/canbedone/canbedone-periods.tex	2025-02-19 22:48:50 UTC (rev 74156)
@@ -6,7 +6,7 @@
 
 \startdocument
   [title=periods,
-   color=middlered]
+   color=darkred]
 
 \startsectionlevel[title=Introduction]
 

Modified: trunk/Master/texmf-dist/doc/context/sources/general/manuals/canbedone/canbedone-style.tex
===================================================================
--- trunk/Master/texmf-dist/doc/context/sources/general/manuals/canbedone/canbedone-style.tex	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/sources/general/manuals/canbedone/canbedone-style.tex	2025-02-19 22:48:50 UTC (rev 74156)
@@ -9,6 +9,9 @@
 \usemodule[abbreviations-logos]
 \usemodule[scite]
 
+\setupexternalfigures
+  [location={local,global,default}]
+
 \setvariables
   [document]
   [title=No Title,

Modified: trunk/Master/texmf-dist/doc/context/sources/general/manuals/canbedone/canbedone.tex
===================================================================
--- trunk/Master/texmf-dist/doc/context/sources/general/manuals/canbedone/canbedone.tex	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/sources/general/manuals/canbedone/canbedone.tex	2025-02-19 22:48:50 UTC (rev 74156)
@@ -22,7 +22,10 @@
     \startdocument[title=canbedone,color=middlegray]
     \stopdocument
 
-    \startsectionlevel[title=Periods] \component [canbedone-periods] \stopsectionlevel
+    \startsectionlevel[title=Periods]
+        \component [canbedone-periods]
+        \component [canbedone-clipping]
+    \stopsectionlevel
 
 \stoptext
 

Modified: trunk/Master/texmf-dist/doc/context/sources/general/manuals/columnsets/columnsets-000.tex
===================================================================
--- trunk/Master/texmf-dist/doc/context/sources/general/manuals/columnsets/columnsets-000.tex	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/sources/general/manuals/columnsets/columnsets-000.tex	2025-02-19 22:48:50 UTC (rev 74156)
@@ -59,4 +59,38 @@
 \defineoverlay[frame]   [\uniqueMPgraphic{frame}]
 \defineoverlay[contrast][\uniqueMPgraphic{contrast}]
 
+% TODO
+
+\unprotect
+
+\protected\def\NormalizeFontWidthSpread#1#2#3#4#5#6%
+  {\global\setfalse\NFSpread
+   \scratchdimen#3%
+   \scratchdimen-.5\scratchdimen
+   \advance\scratchdimen#2\relax
+   \NormalizeFontWidth
+     #1%
+     {\enforced\def\+{\global\settrue\NFSpread\gobbleuntil\relax}%
+      \enforced\def\\{\gobbleuntil\relax}% newline
+      \setupspacing
+      #6\relax}%
+     {\scratchdimen}%
+     {#4}%
+   \ifconditional\NFSpread
+     % de gap valt in de binding
+   \else
+     \definefont[\strippedcsname#1][#4 #5]%
+   \fi}
+
+\protected\def\SpreadGapText#1#2%
+  {{\def\+{\kern#1}#2}}
+
+\protected\def\GapText#1#2#3#4#5% width distance font spec title
+  {\bgroup
+   \NormalizeFontWidthSpread\DummyFont{#1}{#2}{#3}{#4}{#5}%
+   \DummyFont\setupspacing\SpreadGapText{#2}{#5}\endgraf
+   \egroup}
+
+\protect
+
 \stopenvironment

Modified: trunk/Master/texmf-dist/doc/context/sources/general/manuals/columnsets/columnsets-001.tex
===================================================================
--- trunk/Master/texmf-dist/doc/context/sources/general/manuals/columnsets/columnsets-001.tex	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/sources/general/manuals/columnsets/columnsets-001.tex	2025-02-19 22:48:50 UTC (rev 74156)
@@ -1,3 +1,4 @@
+
 \environment columnsets-000
 
 \definecolumnset[example][n=2]

Modified: trunk/Master/texmf-dist/doc/context/sources/general/manuals/columnsets/columnsets-005.tex
===================================================================
--- trunk/Master/texmf-dist/doc/context/sources/general/manuals/columnsets/columnsets-005.tex	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/sources/general/manuals/columnsets/columnsets-005.tex	2025-02-19 22:48:50 UTC (rev 74156)
@@ -4,8 +4,6 @@
 
 \definecolumnsetspan[wide][n=2,background=contrast,color=white]
 
-\definecolor[fakerulecolor]
-
 \starttext
 
 \startcolumnset[example]

Modified: trunk/Master/texmf-dist/doc/context/sources/general/manuals/columnsets/columnsets-006.tex
===================================================================
--- trunk/Master/texmf-dist/doc/context/sources/general/manuals/columnsets/columnsets-006.tex	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/sources/general/manuals/columnsets/columnsets-006.tex	2025-02-19 22:48:50 UTC (rev 74156)
@@ -2,8 +2,6 @@
 
 \definecolumnset[example][n=3,page=left]
 
-\definecolor[fakerulecolor]
-
 \definecolumnsetspan[wide][n=2,background=contrast,color=white]
 
 \starttext

Modified: trunk/Master/texmf-dist/doc/context/sources/general/manuals/columnsets/columnsets-007.tex
===================================================================
--- trunk/Master/texmf-dist/doc/context/sources/general/manuals/columnsets/columnsets-007.tex	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/sources/general/manuals/columnsets/columnsets-007.tex	2025-02-19 22:48:50 UTC (rev 74156)
@@ -2,8 +2,6 @@
 
 \definecolumnset[example][n=3,page=left]
 
-\definecolor[fakerulecolor]
-
 \definecolumnsetspan[wide][n=2,background=contrast,color=white]
 
 \starttext

Added: trunk/Master/texmf-dist/doc/context/sources/general/manuals/examples/examples-mathmeanings.tex
===================================================================
--- trunk/Master/texmf-dist/doc/context/sources/general/manuals/examples/examples-mathmeanings.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/context/sources/general/manuals/examples/examples-mathmeanings.tex	2025-02-19 22:48:50 UTC (rev 74156)
@@ -0,0 +1,938 @@
+% macros=mkvi
+
+% \unprotect \pushoverloadmode
+% \protect
+
+\setupbackend[format=pdf/ua-2]
+% \setuptagging[state=start]
+% \nopdfcompression
+% \enabletrackers[structures.tags]
+% \enabletrackers[structures.tags.showtree]
+
+\environment examples-style
+\environment examples-style-math
+
+% todo-group.txt
+
+% \setupnote[mathnote][location=page]
+% \enabletrackers[math.textblobs]
+
+% \disabledirectives[structures.tags.shipout]
+% \enabledirectives [structures.tags.math.standalone]
+% \disabledirectives[structures.tags.math.strip]
+
+% \setuptagging
+%   [state=start]
+
+\definemathgroupset
+%   [demob]
+  [every]
+
+% \setmathgroupset
+%   [demob]
+
+\registermathfunction[𝑓]
+\registermathfunction[𝑔]
+
+% \registermathsymbol[default][en][𝐮][the vector]
+% \registermathsymbol[default][en][𝐯][the vector]
+% \registermathsymbol[default][en][𝖠][the matrix]
+
+\registermathsymbol[default][en][lowercasebold]           [the vector] % [of]
+\registermathsymbol[default][en][uppercasesansserifnormal][the matrix]
+
+% \registermathsymbol[default][sv][𝐮][vektorn]
+% \registermathsymbol[default][sv][𝐯][vektorn]
+
+\registermathsymbol[default][sv][lowercasebold]           [vektorn]
+\registermathsymbol[default][sv][uppercasesansserifnormal][matrisen]
+
+% \registermathsymbol[default][en][𝒞][the continuous functions]
+% \registermathsymbol[default][sv][𝒞][de kontinuerliga funktionerna]
+
+        \registermathsymbol[default][ua][lowercasebold]           [vektorn]
+        \registermathsymbol[default][ua][uppercasesansserifnormal][matrisen]
+
+%         \registermathsymbol[default][de][lowercasebold]           [vektorn]
+%         \registermathsymbol[default][de][uppercasesansserifnormal][matrisen]
+
+\def\ExampleLanguages{en,sv}
+\def\ExampleLanguages{debug,en,sv}
+% \def\ExampleLanguages{debug,en,sv,nl}
+% \def\ExampleLanguages{debug,en,sv,ua}
+% \def\ExampleLanguages{en,sv,ua}
+% \def\ExampleLanguages{en,sv,ua,de}
+
+% \enablemode[issues]
+
+% \enabletrackers[structures.tags.math.times]
+% \enabletrackers[structures.tags.math.keeplast=mmldata]
+% \enabletrackers[structures.tags.math.save]
+
+% The document itself:
+
+\startbuffer [colophon]
+
+\startsubject[title=About this document]
+
+This document is used by Mikael Sundqvist and Hans Hagen to check out how well a
+formula translates to a verbose meaning. It's an experiment with accessibility on
+the one hand but also a way to get documents validated and even annotated.
+Eventually there will be support for many languages but we started with English,
+Swedish and Dutch.
+
+\blank
+
+This feature is only available in \CONTEXT\ \MKXL, aka \LMTX. You can enable
+tracking in your document by for instance:
+
+\starttyping[option=TEX]
+\setuptagging
+  [state=start]
+
+\definemathgroupset
+  [mydemogroup]
+  [every]
+
+\setmathgroupset
+  [mydemogroup]
+
+\setupnote
+  [mathnote]
+  [location=page]
+
+\enabletrackers
+  [math.textblobs]
+\stoptyping
+
+By default a \type {mathnote} is set up to be an endnote in which case you need
+to place them with:
+
+\starttyping[option=TEX]
+\placenote[mathnode]
+\stoptyping
+
+\stopsubject
+\stopbuffer
+
+\startdocument
+  [title={Meaningfull Math},
+   author={Mikael Sundqvist & Hans Hagen}]
+
+\StartExample
+    % Addition and equals
+    \im {1 + 2 = 3}
+\StopExample
+
+\StartExample
+    % Subtraction and negative number
+    \im {1 - 2 = -1}
+\StopExample
+
+\StartExample
+    % Multiplication
+    \im {2 \times 3 = 2 \cdot 3 = 6}
+\StopExample
+
+\StartExample
+    % Decimal numbers
+    \im {1.1 + 2.22 = 3.33 = 3 + (0.1 + .22) \neq - \digits{1.23^4} \neq 10^5}
+\StopExample
+
+\StartExample
+    % Hexadecimal with \mn
+    \im {\mn{0x34BE} = 13502 = \digits{13502}}
+\StopExample
+
+\StartExample
+    % Squared
+    \im {3^2 + 4^2 = 5^2}
+\StopExample
+
+\StartExample
+    % Higher power
+    \im {3^4 + 4^4 \neq 5^4}
+\StopExample
+
+\StartExample
+    % Simple fraction
+    \dm {\frac{1}{2} = \frac{1}{3} + \frac{1}{6}}
+\StopExample
+
+\StartExample
+    % Fraction with symbols
+    \dm {\frac{1}{x} + \frac{1}{y} = \frac{x + y}{xy}}
+\StopExample
+
+\StartExample
+    % Fraction multiplied by number
+    \m{\frac{1}{2}2 = \frac{1}{2} \cdot 2 = \frac{1}{2} \times 2 = 2 \frac{1}{2} = 2 \cdot \frac{1}{2} = 2 \times \frac{1}{2}}
+\StopExample
+
+\StartExample
+    % Fraction multiplied by symbol
+    \m{\frac{1}{2}a = \frac{1}{2}\cdot a = \frac{1}{2} \times a = a \frac{1}{2} = a \cdot \frac{1}{2} = a \times \frac{1}{2}}
+\StopExample
+
+\StartExample
+    % With fraction times fraction
+    \dm {a\frac{1 + x}{x - 1} + \frac{1 - x}{1 + x}\frac{1 - y}{1 + y} + \frac{1 - x}{1 + x}y}
+\StopExample
+
+\StartExample
+    % Group and number/variable
+    \im {2(1 + x) + (1 + y)3 - a(1 + z) - (1 + u)b}
+\StopExample
+
+\StartExample
+    % Group and number/variable with explicit multiplication
+    \im {2 \cdot (1 + x) + (1 + y) \cdot 3 - a \cdot (1 + z) - (1 + u) \cdot b}
+\StopExample
+
+\StartExample
+    % Multiplication of indexed/sub (use \notimes if times should be surpressed)
+    \dm {a__2b__1 - a_1b_2 = a__2\notimes b__1 - a_1\notimes b_2}
+\StopExample
+
+\StartExample
+    % A few indices, both as one and as multi
+    % Do we want to use invisible comma anywhere? Probably not.
+    \dm {A_{1,20} + A_1_{20} + A_{1,20} + A_1_{20}}
+\StopExample
+
+\StartExample
+    % Group and element with sub(index)
+    \im {a__1(1 + x) + (1 + y)b__1 - a_2(1 + z) - (1 + u)b_2}
+\StopExample
+
+\StartExample
+    % Group and element with sub(index) and with explicit multiplication
+    \im {a__1 \cdot (1 + x) + (1 + y) \cdot b__1 - a_2 \cdot (1 + z) - (1 + u) \cdot b_2}
+\StopExample
+
+\StartExample
+    % Groups and times
+    \im {(n+k)n + (n+k)(n+1) + n(n+k)}
+\StopExample
+
+\StartExample
+    % Left right groups times
+    \im {\left(n+k\right)n + \left(n+k\right)\left(n+1\right) + n\left(n+k\right)}
+\StopExample
+
+\StartExample
+    % Fenced and times
+    \im {\fenced[parenthesis]{n+k}n + \fenced[parenthesis]{n+k}\fenced[parenthesis]{n+1} + n\fenced[parenthesis]{n+k}}
+\StopExample
+
+\StartExample
+    % Groups with powers and times
+    \dm {(1 + x)^n a  = a (1 + x)^n \neq (1 + x)^n (1 + y) - (1 + x)(1 + y)^n}
+\StopExample
+
+\StartExample
+    % Simple parenthesis usage
+    % Better use structured input (see next two examples)
+    \im {(1 + 2 + 3 + 4)^2 = 1^3 + 2^3 + 3^3 + 4^3}
+\StopExample
+
+\StartExample
+    % Better, but next one might be even more clear
+    \im {\left(1 + 2 + 3 + 4 \right)^2 = 1^3 + 2^3 + 3^3 + 4^3}
+\StopExample
+
+\StartExample
+    % Structured parenthesis usage
+    \im{\fenced[parenthesis]{1 + 2 + 3 + 4 }^2 = 1^3 + 2^3 + 3^3 + 4^3}
+\StopExample
+
+\StartExample
+    % Plus minus
+    \im {x \neq x + -1}
+\StopExample
+
+\StartExample
+    % Decimal period last in math goes
+    \im {x = 1.}
+\StopExample
+
+\StartExample
+    % Also goes for mathtextpunctuation
+    % (Mostly for displayed formulas, otherwise, keep the punctuation outside math)
+    \im {x = 1\mtp{.}}
+\StopExample
+
+\StartExample
+    % Period at end -> period goes
+    \im {x = y.}
+\StopExample
+
+\StartExample
+    % Also goes for mathtextpunctuation
+    \im {x=z\mtp{.}}
+\StopExample
+
+\StartExample
+    % Shoulf comma at the end also go? (bad input)
+    \im {x = y,}
+\StopExample
+
+\StartExample
+    % Variables can be used as placeholders for numbers (explaining decimals)
+    % We use \notimes to get rid of the explicit multiplication
+    \im {a__{0}.a__{1}\notimes a__{2} \ldots a__{n} \ldots}
+\StopExample
+
+\StartExample
+    % Different ways to access the multiplication dot
+    \im {y·z = y \cdot z = y \scalarproduct z}
+\StopExample
+
+\StartExample
+    % The f and g are in this document registered as functions
+    % There should be TIMES between g and h
+    \im {abcdefghikl}
+\StopExample
+
+\StartExample
+    % Lots of times
+    \im {xx \sin(x) x \frac{x}{x} x \sqrt{x} x \int x \sin \cos x \sin(x) \cos}
+\StopExample
+
+\StartExample
+    % f is registered as a function, h is not
+    \im {af(x) + bh(x) + f(x + b)}
+\StopExample
+
+\StartExample
+    % Apply function or whatever
+    \dm { A(X) \neq A\notimes(X) \neq A\applyfunction(X) \neq A\of(X)}
+\StopExample
+
+\StartExample
+    % Just an example where \of makes sense
+    \dm {\Sigma \of (X \vee Y) = \Sigma \of X \vee \Sigma \of Y}
+\StopExample
+
+\StartExample
+    % An example with something of two variables
+    \dm { F\of(x,t) = f__t(x) = \mathrm{f}__t\of(x)}
+\StopExample
+
+\StartExample
+    % Prime with and without \of
+    \dm { h'\of(x) \neq h'(x)}
+\StopExample
+
+\StartExample
+    % C \of examples
+    % We shall not get rid of the grouping since it gives structure
+    % One could think of a \nogroup (just as \notimes)
+    \im { C \of (\openinterval{a,b}) \neq C^^2 \of (\interval{a,b}) \neq C^^2 \of \interval{0,1} \neq C\of(\Omega) \neq 𝒞 \of (\Omega)}
+\StopExample
+
+\StartExample
+    % Nesting groups. Could it have meaning? Or should we only get one group.
+    \im { (((x))) \neq ((x)) \neq (\parenthesis{x})}
+\StopExample
+
+\StartExample
+    % Nesting groups/parentheses need to be there
+    \im { s\of(1) = s\of(\set{0}) = \set{0} \cup \set{\set{0}}}
+\StopExample
+
+\StartExample
+    % Algebra (ring) examples
+    \dm {\reals \of \bracket{x + 1} = \reals\fenced[bracket]{x} \neq \reals\of[x]}
+\StopExample
+
+\StartExample
+    % This is a result of
+    % \registermathsymbol[default][en][lowercasebold][the vector]
+    % \registermathsymbol[default][en][uppercasesansserifnormal][the matrix]
+    \im {\mathss{A}__{\mathbf{u}}\mathbf{v} \colonequals \mathbf{u} \crossproduct \mathbf{v}}
+\StopExample
+
+\StartExample
+    % Binomials are fractions
+    \im {\binom{3}{2} = \frac{3!}{(3-2)!2!}}
+\StopExample
+
+\StartExample
+    % With symbols it gets a bit long
+    \im {\binom{2n}{n + 1} = \frac{(2n)!}{(n - 1)!(n + 1)!}}
+\StopExample
+
+\StartExample
+    % Binomials, multiplied
+    \im {a\binom{n}{k} + \binom{n}{k}\binom{n}{a} + \binom{n}{k}x^k + \binom{n}{k}x}
+\StopExample
+
+\StartExample
+    % Binomial theorem
+    \dm {\parenthesis{1 + x}^n = \sum_{k = 0}^{n} \binom{n}{k}x^k}
+\StopExample
+
+\StartExample
+    % \ldots = , and so on
+    \im {x + x^2 + x^3 + \ldots = x/(1 - x)}
+\StopExample
+
+\StartExample
+    % Well-known complex formula
+    \im {3i \neq 3\ii \neq 1 + i \neq 2 + \ii \neq 3 + a i \neq 3 + a \ii }
+\StopExample
+
+\StartExample
+    % Well-known complex formula
+    \im {\ee^{\pi \ii } = -1}
+\StopExample
+
+\StartExample
+    % Do we need "times" before the \ee?
+    \im {a + b \ii = \sqrt{a^2 + b^2}\ee^{\ii\arg(a + \ii b)}}
+\StopExample
+
+\StartExample
+    % Simple conjugate
+    \im {\conjugate{a + b \ii} = a - b \ii}
+\StopExample
+
+\StartExample
+    % Implication
+    \im {x^2 = -1 \implies x = \pm \ii}
+\StopExample
+
+\StartExample
+    % Some radicals
+    \im {\sqrt{x} = x^{1/2} \neq x^{1/3} = \root[3]{x}}
+\StopExample
+
+\StartExample
+    % Some radicals with multiplication
+    \im {2\sqrt{x} = 2x^{1/2} \neq 2x^{1/3} = 2\root[3]{x}}
+\StopExample
+
+\StartExample
+    % Some radicals with multiplication
+    \im {a\sqrt{x} = ax^{1/2} \neq ax^{1/3} = a\root[3]{x}}
+\StopExample
+
+\StartExample
+    % Some radicals with multiplication
+    % This is bad input!
+    \im {\sqrt{x}2 = x^{1/2}2 \neq x^{1/3}2 = \root[3]{x}2}
+\StopExample
+
+\StartExample
+    % Product of radicals
+    \im {\sqrt{x} \sqrt{y} = \sqrt{xy}}
+\StopExample
+
+\StartExample
+    % Some radicals with multiplication
+    \im {\sqrt{x}a = x^{1/2}a \neq x^{1/3}a = \root[3]{x}a}
+\StopExample
+
+\StartExample
+    % Just a few numbersets with subsets
+    \im {\naturalnumbers \subset \integers \subset \rationals \subset \reals \subset \complexes}
+\StopExample
+
+\StartExample
+    % Just a few numbersets with intersection
+    \im {\naturalnumbers \cap \reals = \naturalnumbers}
+\StopExample
+
+\StartExample
+    % A set with a \fence. Notice that no group should be started after the fence
+    \im {\set{a \in \naturalnumbers \fence \mtext{\im{a} is even}}}
+\StopExample
+
+\StartExample
+    % A set with a \fence. More conditions
+    \dm {\rationals = \set{\frac{p}{q} \fence p,q \in \integers \land q \neq 0}}
+\StopExample
+
+\StartExample
+    % Maps colon is given by \maps (defined function)
+    \im {f \maps \reals \to \reals}
+\StopExample
+
+\StartExample
+    % Maps colon is given by \maps (named function)
+    \im {\sin \maps \reals \to \reals}
+\StopExample
+
+\StartExample
+    % Maps as colon by \mapsas
+    \im {f \mapsas x \mapsto x + \exp(x)}
+\StopExample
+
+\StartExample
+    % Maps as colon by \mapsas
+    \im {\sin \mapsas x \mapsto \sin(x)}
+\StopExample
+
+\StartExample
+    % Logarithms, spelled out
+    % Todo, add for other or remove for ln
+    \im {x \mapsto \ln(x)}
+\StopExample
+
+\StartExample
+    % The grouping is sometimes needed
+    \im {\sin x = \sin(x) \neq \sin(x) + 1 \neq \sin(x + 1)}
+\StopExample
+
+\StartExample
+    % Just a function
+    \im {f = \sin}
+\StopExample
+
+\StartExample
+    % Just a limit
+    \im {\lim a_{k} = -\infty}
+\StopExample
+
+\StartExample
+    % A limit with sub on lim
+    \im {\lim_{k \tendsto +\infty} a_{k}}
+\StopExample
+
+\StartExample
+    % Using index (__)
+    \im {\lim__{k \tendsto +\infty} a__{k} = -\infty}
+\StopExample
+
+\StartExample
+    % Limit and fractin (no times inbetween)
+    \dm {\lim \frac{a__{k}}{b__{k}}}
+\StopExample
+
+\StartExample
+    % Limit and fraction with sub on lim
+    \dm {\lim_{k \tendsto +\infty} \frac{A__k}{B__k}}
+\StopExample
+
+\StartExample
+    % Should be two formulas, but in this document we only show the last one
+    \im {f(x) \tendsto A \mtext{ as } x \tendsto a}
+\StopExample
+
+\StartExample
+    % Just a standard limit
+    \dm {\lim_{x \tendsto 0} \frac{\sin (x)}{x} = 1}
+\StopExample
+
+\StartExample
+    % More complicated in the sub.
+    \dm {\lim_{f(x) \tendsto 0} g(x)}
+\StopExample
+
+\StartExample
+    % Some derivatives
+    % Do we want "The function" here? (That is a more general question)
+    \im {f'(x) + f''(x) + f'''(x) + f''''(x)}
+\StopExample
+
+\StartExample
+    % Variable primed
+    \im {f' + h' + h'' + h''' + h''''}
+\StopExample
+
+\StartExample
+    % More derivatives
+    \im { \secondderivative{f} = f'' }
+\StopExample
+
+\StartExample
+    % An example with derivative
+    \im {\sin''(x) = -\sin(x) = \sin(x + \pi)}
+\StopExample
+
+\StartExample
+    % Even more derivatives, also with indices
+    \im {f__1'(x) + f__1^^2'(x) }
+\StopExample
+
+\StartExample
+    % Without \notimes we get a times. See also next example
+    \im {(f)'(x) + (f)'\notimes(x) + \derivative{(f)}(x) + \derivative{(f)}\notimes(x)}
+\StopExample
+
+\StartExample
+    % Here we want times, so we cannot block it in previous example
+    \im {(f+g)'(f+g) }
+\StopExample
+
+\StartExample
+    % More indices
+    \im {(f__1)^2 = (f_1)^2 \neq f_1^2 }
+\StopExample
+
+\StartExample
+    % A few more
+    \im {(x_1)^2 \neq x_1^2 }
+\StopExample
+
+\StartExample
+    % More indiced, we probably can remove some
+    \im {h_1 + h__1 + h^1 + h^^1}
+\StopExample
+
+\StartExample
+    % Amazing multiscript example
+    \im{
+        h_{}      ^{\lambda} ___{s}
+         _{\kappa}^{} % \noscript  %
+         _{\mu}   ^{} % \noscript  %
+         _{}      ^{\nu}     ___{t}
+         _{\phi}  ^{} % \noscript
+        }
+\StopExample
+
+\StartExample
+    % Multiscripts
+    \im {\Gamma_1^2_3^4 \neq \Gamma__1^^2__3^^4}
+\StopExample
+
+\StartExample
+    % Even more multiscripts
+    \im {\Gamma__1^^2__3^^4 \neq \Gamma__1^^2^^{}__3^^4}
+\StopExample
+
+\StartExample
+    % One example with prescript
+    The hypergeometric function \im {F____2__1}
+\StopExample
+
+\StartExample
+    % A sum and a fraction
+    \dm {\sum_{n = 1}^{+\infty} \frac{1}{n^2} = \frac{\pi^2}{6}}
+\StopExample
+
+\StartExample
+    % A sum with only sub index, and a fraction
+    \dm {\sum_{n \in \naturalnumbers} \frac{1}{n^2} = \frac{\pi^2}{6}}
+\StopExample
+
+\StartExample
+    % A product followed by a delimitered parenthesis
+    \dm {\sin x = \prod_{n = 1}^{+\infty} \left(1 - \frac{x^2}{\pi^2n^2}\right)}
+\StopExample
+
+\StartExample
+    % A product followed by a fence
+    \dm {\sin x = \prod_{n = 1}^{+\infty} \parenthesis{1 - \frac{x^2}{\pi^2n^2}}}
+\StopExample
+
+\StartExample
+    % A simple integral with limits
+    \dm {\int_{a}^{b} f'(x) \dd x = f(b) - f(a)}
+\StopExample
+
+\StartExample
+    % A bit more complex lower limit
+    \dm {\int_{x=a}^{b} f'(x) \dd x = f(b) - f(a)}
+\StopExample
+
+\StartExample
+    % An integral over the domain
+    \dm {\int_{\Omega} f \dd \mu = 0}
+\StopExample
+
+\StartExample
+    % An integral followed by a fraction
+    \dm {\int \frac{1}{1 + x^2} \dd x}
+\StopExample
+
+\StartExample
+    % An integral with limits, followed by a fraction
+    \dm {\int_0^1 \frac{1}{1 + x^2} \dd x}
+\StopExample
+
+\StartExample
+    % Some tuples
+    \im {\tuple{x^1, x^2, x^3} \neq \tuple{x^^1, x^^2, x^^3} = \tuple{x__1, x__2, x__3}}
+\StopExample
+
+\StartExample
+    % Complement shall not give times
+    \im {A \cup \complement A}
+\StopExample
+
+\StartExample
+    % Quantifiers
+    % We need to think about unary operators (class) in a broader sense
+    \im {\forall x \in A \exists y \in B: \abs{x - y} > 1}
+\StopExample
+
+\StartExample
+    % Right function adjoint
+    \im {\adjoint{T}T = T\adjoint{T} \neq \adjoint{T}}
+\StopExample
+
+\StartExample
+    % Same comment as for adjoint
+    \im {A \adj(A) = \det(A) I}
+\StopExample
+
+\StartExample
+    % Convolution with non-regiestered functions, note the \of
+    \im {(u \convolve v) (x) \colonequals \int_{\reals} u\of(\xi) v\of(x - \xi) \dd \xi}
+\StopExample
+
+\StartExample
+    % Convolution with registered functions
+    \im {(f \convolve g) (x) \colonequals \int_{\reals} f(\xi) g(x - \xi) \dd \xi}
+\StopExample
+
+\StartExample
+    % Right transpose function
+    \im {\transpose{A} + \transpose{(A + B^2)} + \transpose{\left(A^2 + B\right)}}
+\StopExample
+
+\StartExample
+    % Partial derivatives with lower indices. Beware of order.
+    \im {\secondderivative{f__{xy}} = \secondderivative{f__{yx}} = f__{xy}'' \neq \secondderivative{f}__{yx}}
+\StopExample
+
+\StartExample
+    % Inverse of function f
+    % It is the preimage that is the issue
+    \im {f(x) = y \iff x = \inverse{f}\of(y)}
+\StopExample
+
+\StartExample
+    % Inverse of variable h
+    \im {h\of(x) = y \iff x = \inverse{h}\of(y)}
+\StopExample
+
+\StartExample
+    % Preimage of function f
+    \im {\preimage{f}\of(Y) = \set{x \in X \fence f(x) = y}}
+\StopExample
+
+\StartExample
+    % Preimage of variable h
+    \im {\preimage{h}\of(Y) = \set{x \in X \fence h\of(x) = y}}
+\StopExample
+
+\StartExample
+    % Leibniz derivatives
+    \dm {\frac{\dd u}{\dd t} = u' = \dot{u}}
+\StopExample
+
+\StartExample
+    % More derivatives, Laplace operator
+    % Maybe we need operatorof here?
+    \dm {\frac{\partial u}{\partial t} = c^2 \laplace u}
+\StopExample
+
+\StartExample
+    \dm {\frac{\partial u}{\partial t} = c^2 \frac{\partial^2u}{\partial x^2}}
+\StopExample
+
+\StartExample
+    % More derivatives
+    % Here we see that "the function" from the registered
+    % function is not always wanted
+    \dm {\dd + \frac{\dd^3 u}{\dd x^3} + \frac{\dd f}{\dd x}}
+\StopExample
+
+\StartExample
+    % Upright d
+    \setupmathematics[differentiald=upright]
+    \dm {\dd + \frac{\dd^3 u}{\dd x^3} + \frac{\dd f}{\dd x}}
+\StopExample
+
+\StartExample
+    % A mixed partial derivative
+    \dm {\frac{\partial^3 u}{\partial x^2 \partial y}}
+\StopExample
+
+\StartExample
+    % A complex analysis way of writing it.
+    % To be thought of
+    \im {\conjugate{\partial} u = \bar{\partial} u = f}
+\StopExample
+
+\StartExample
+    % Experimented with partial derivative d d x group u plus v end group...
+    % but for accessibility reasons it is better to keep the partial
+    % We need \of here because one can have products as well
+    % Without \of one could consider \notimes, but if none is there we should get a TIMES
+    \dm {\frac{\partial}{\partial x}\of(u + v) = \frac{\partial u}{\partial x} + \frac{\partial v}{\partial x}}
+\StopExample
+
+\StartExample
+    % One example with Laplace followed by a close parenthesis
+    \im {(1 - \laplace)u = f}
+\StopExample
+
+\StartExample
+    % Just a few operators
+    \im {\laplace = \gradient \scalarproduct \gradient = \gradient^2 = \nabla \scalarproduct \nabla}
+\StopExample
+
+\StartExample
+    % Operator and crossproduct
+    \im {\gradient \crossproduct \gradient}
+\StopExample
+
+\StartExample[issue]
+    % Maybe shorter end
+    % Made an issue to enable discussion
+    \im {\floor{3.6} = \ceiling{2.7} = \integerpart{3.2}}
+\StopExample
+
+\StartExample
+    % Just a set
+    \im {A = \set[size=1]{1, 2, 3}}
+\StopExample
+
+\StartExample
+    % Just a tuple
+    \im {A = \tuple{1, 2, 3}}
+\StopExample
+
+\StartExample
+    % Just an absolute value
+    \im {|\abs[size=0]{a__{n__k} - A} < \epsilon}
+\StopExample
+
+\StartExample
+    % Inner product
+    \im {\innerproduct{u \fence v} = \conjugate{\innerproduct{v \fence u}}}
+\StopExample
+
+\StartExample
+    % A set with a fence
+    \im {\reals__{+} \colonequals \set{x \fence x \in \reals \land x > 0}}
+\StopExample
+
+\StartExample
+    % Simple unstructured input works, but do not use!
+    % \setupmathematics[autointervals=no]
+    \im {[a,b[ \neq ]a,b] \neq ]a,b[ \neq [a,b]}
+\StopExample
+
+\StartExample
+    % Warning: Nesting with weird parenthesis is not supported
+    \im {X = \varleftopeninterval{a,(b + 1)} \neq ]a,(b + 1)]}
+\StopExample
+
+\StartExample
+    % Closure of interval
+    \im {\closure{\openinterval{a,b}} = \closedinterval{a,b}}
+\StopExample
+
+\StartExample
+    % Closure of interval
+    \im {\closure{\varopeninterval{0,1}} = \closedinterval{0,1}}
+\StopExample
+
+\StartExample
+    % Random formula
+    % Mikael: Think about the Delta
+    \dm {u\of(b)-u\of(a)=\lim_{n\to+\infty} \parenthesis{f(x__1)\Delta x__1+f(x__2)\Delta x__2+\ldots+f(x__n)\Delta x__n}}
+\StopExample
+
+\StartExample
+    % Absolute value, triangle inequality
+    \im {\abs{x + y} \leq \abs{x} + \abs{y}}
+\StopExample
+
+\StartExample
+    % Norm, triangle inequality
+    \im {\norm{x + y} \leq \norm{x} + \norm{y}}
+\StopExample
+
+\StartExample
+    % Both norm and absolute value
+    \im {\norm{\alpha x} = \abs{\alpha} \norm{x}}
+\StopExample
+
+\StartExample
+    % Example with \mtp
+    \im {f(x) = x^2 \mtp{,} x \in \reals}
+\StopExample
+
+\StartExample
+    % Logic example
+    \im {\lnot(P \lor Q) = (\lnot P) \land (\lnot Q)}
+\StopExample
+
+\StartExample
+    % \neg is now defined as a function. Maybe char-def
+    % TODO Fix \neg?
+    \im {\neg(P \land Q) \iff (\lnot P) \lor (\lnot Q)}
+\StopExample
+
+\StartExample
+    % Yet another example with quantifier
+    % Observe the usage of \notimes
+    \im {(\forall x \in \reals)\notimes (x > 0 \lor x = 0 \lor x < 0)}
+\StopExample
+
+\StartExample
+    % Cases example
+    \dm {f(x) =
+        \startcases
+            \NC x  \NC x > 0 \NR
+            \NC -x \NC x < 0 \NR
+        \stopcases}
+\StopExample
+
+\StartExample
+    % Cases with lefttext
+    \dm{f(x) =
+        \startcases[lefttext=\mtp{,}]
+            \NC x  \NC x > 0 \NR
+            \NC -x \NC x < 0 \NR
+        \stopcases}
+\StopExample
+
+\StartExample
+    % Cases with righttext
+    \dm{f(x) =
+        \startcases[righttext=\mtext{if }]
+            \NC x  \NC x > 0 \NR
+            \NC -x \NC x < 0 \NR
+        \stopcases}
+\StopExample
+
+\StartExample
+    % Chemistry example
+    % Todo: maybe defaultstyle to \tf
+    \setupmathematics[domain=chemistry]
+    \dm{
+        {\tf X}^^^{123}__{12}^{+4} \approx X^^^{123}__{12}^{+4}
+    }
+\StopExample
+
+\StartExample
+    \dm{
+        \left(1 + x + x^2\right)^2
+    }
+\StopExample
+
+\StartExample
+    \setupmathematics[domain=simplified]
+    \dm{
+        \left(1 + x + x^2\right)^2
+    }
+\StopExample
+
+\StartExample
+    % User formula
+    % Maybe add something inbetween nedsted sums (and integrals)?
+    \startformula \chi^{2} = \sum_{i = 1}^{r}{\sum_{j = 1}^{c}\frac{\left( O_{ij} - E_{ij} \right)^{2}}{E_{ij}}} \stopformula
+\StopExample
+
+\StartExample
+    \im {\fourier{x+1} \neq \fourier{x}}
+\StopExample
+
+\stopdocument


Property changes on: trunk/Master/texmf-dist/doc/context/sources/general/manuals/examples/examples-mathmeanings.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/context/sources/general/manuals/examples/examples-naturaltables.tex
===================================================================
--- trunk/Master/texmf-dist/doc/context/sources/general/manuals/examples/examples-naturaltables.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/context/sources/general/manuals/examples/examples-naturaltables.tex	2025-02-19 22:48:50 UTC (rev 74156)
@@ -0,0 +1,418 @@
+\environment examples-style
+
+\startdocument
+  [title={Natural Tables},
+   author={Hans Hagen}]
+
+\startbuffer[knuth-1]
+    Thus, I came to the conclusion that the designer of a new
+    system must not only be the implementer and first
+    large||scale user; the designer should also write the first
+    user manual.
+\stopbuffer
+
+\startbuffer[knuth-2]
+    The separation of any of these four components would have
+    hurt \TeX\ significantly. If I had not participated fully in
+    all these activities, literally hundreds of improvements
+    would never have been made, because I would never have
+    thought of them or perceived why they were important.
+\stopbuffer
+
+\startbuffer[knuth-3]
+    But a system cannot be successful if it is too strongly
+    influenced by a single person. Once the initial design is
+    complete and fairly robust, the real test begins as people
+    with many different viewpoints undertake their own
+    experiments.
+\stopbuffer
+
+% ok
+
+\StartExample
+\bTABLE
+\bTR \bTD[nr=3] 1 \eTD \bTD[nc=2] 2/3     \eTD \bTD[nr=3] 4 \eTD \eTR
+\bTR                   \bTD 2 \eTD \bTD 3 \eTD                   \eTR
+\bTR                   \bTD 2 \eTD \bTD 3 \eTD                   \eTR
+\bTR \bTD[nc=3] 1/2/3                     \eTD \bTD 4       \eTD \eTR
+\bTR \bTD 1       \eTD \bTD 2 \eTD \bTD 3 \eTD \bTD 4       \eTD \eTR
+\eTABLE
+\StopExample
+
+% ok
+
+\StartExample
+\setupTABLE[1,4][2][background=color,backgroundcolor=red]
+\bTABLE
+\bTR \bTD 1       \eTD \bTD 2 \eTD \bTD 3 \eTD \bTD 4       \eTD \eTR
+\bTR \bTD[nr=3] 1 \eTD \bTD[nc=2] 2/3     \eTD \bTD[nr=3] 4 \eTD \eTR
+\bTR                   \bTD[nc=2] 2/3     \eTD                   \eTR
+\bTR                   \bTD[nc=2] 2/3     \eTD                   \eTR
+\eTABLE
+\StopExample
+
+% ok
+
+\StartExample
+\bTABLE[align={middle,lohi}]
+\bTR \bTD 1 \eTD \bTD 2 \eTD \bTD 3 \eTD            \bTD 4 \eTD \eTR
+\bTR \bTD 1 \eTD \bTD[nr=2,nc=2,color=red] 2/3 \eTD \bTD 4 \eTD \eTR
+\bTR \bTD 1 \eTD                                    \bTD 4 \eTD \eTR
+\bTR \bTD 1 \eTD \bTD 2 \eTD \bTD 3 \eTD            \bTD 4 \eTD \eTR
+\eTABLE
+\StopExample
+
+% ok
+
+\StartExample
+\hbox \bgroup \ignorespaces
+
+\bTABLE
+\bTR \bTD aa \eTD \bTD[nr=2] xx \eTD \bTD cc \eTD \eTR
+\bTR \bTD bb \eTD                    \bTD dd \eTD \eTR
+\eTABLE
+
+\unskip \quad \ignorespaces
+
+\bTABLE
+\bTR \bTD aa \eTD \bTD[nr=2] xx \eTD \bTD cc \eTD \bTD yy \eTD \eTR
+\bTR \bTD bb \eTD                    \bTD dd \eTD              \eTR
+\eTABLE
+
+\unskip \egroup
+\StopExample
+
+% ok
+
+\StartExample
+\setupTABLE[column][odd][background=color,backgroundcolor=red]
+\setupTABLE[row][odd][background=color,backgroundcolor=blue]
+\setupTABLE[even][odd][background=color,backgroundcolor=red]
+
+\bTABLE
+\bTR \bTD a \eTD \bTD bb \eTD \bTD ccc \eTD \bTD dd \eTD \bTD e \eTD \eTR
+\bTR \bTD a \eTD \bTD bb \eTD \bTD ccc \eTD \bTD dd \eTD \bTD e \eTD \eTR
+\bTR \bTD a \eTD \bTD bb \eTD \bTD ccc \eTD \bTD dd \eTD \bTD e \eTD \eTR
+\bTR \bTD a \eTD \bTD bb \eTD \bTD ccc \eTD \bTD dd \eTD \bTD e \eTD \eTR
+\bTR \bTD a \eTD \bTD bb \eTD \bTD ccc \eTD \bTD dd \eTD \bTD e \eTD \eTR
+\bTR \bTD a \eTD \bTD bb \eTD \bTD ccc \eTD \bTD dd \eTD \bTD e \eTD \eTR
+\bTR \bTD a \eTD \bTD bb \eTD \bTD ccc \eTD \bTD dd \eTD \bTD e \eTD \eTR
+\eTABLE
+\StopExample
+
+% ok
+
+\StartExample
+\hbox \bgroup \ignorespaces
+
+\bTABLE
+\setupTABLE[column][1][width=2cm]
+\bTR \bTD aa \eTD \bTD bbb \eTD \bTD cc \eTD \bTD d \eTD \bTD eeee \eTD \eTR
+\bTR \bTD aa \eTD \bTD bbb \eTD \bTD cc \eTD \bTD d \eTD \bTD eeee \eTD \eTR
+\bTR \bTD aa \eTD \bTD bbb \eTD \bTD cc \eTD \bTD d \eTD \bTD eeee \eTD \eTR
+\eTABLE
+
+\unskip \quad \ignorespaces
+
+\bTABLE
+\setupTABLE[column][width=3em]
+\bTR \bTD aa \eTD \bTD bbb \eTD \bTD cc \eTD \bTD d \eTD \bTD eeee \eTD \eTR
+\bTR \bTD aa \eTD \bTD bbb \eTD \bTD cc \eTD \bTD d \eTD \bTD eeee \eTD \eTR
+\bTR \bTD aa \eTD \bTD bbb \eTD \bTD cc \eTD \bTD d \eTD \bTD eeee \eTD \eTR
+\eTABLE
+
+\unskip \egroup
+\StopExample
+
+% ok
+
+\StartExample
+\hbox \bgroup \ignorespaces
+
+\bTABLE
+\bTR \bTD aa \eTD \bTD[nr=2] xx \eTD \bTD bb \eTD \bTD cc \eTD \eTR
+\bTR \bTD aa \eTD \bTD[nr=2] xx \eTD \bTD bb \eTD \bTD cc \eTD \eTR
+\eTABLE
+
+\unskip \quad \ignorespaces
+
+\bTABLE
+\bTR \bTD aa \eTD \bTD[nr=2] xx \eTD \bTD bb \eTD \bTD cc \eTD \eTR \bTR \eTR
+\bTR \bTD aa \eTD \bTD[nr=2] xx \eTD \bTD bb \eTD \bTD cc \eTD \eTR \bTR \eTR
+\eTABLE
+
+\unskip \quad \ignorespaces
+
+\bTABLE
+\bTR \bTD aa \eTD \bTD[nr=2] xx \eTD \bTD bb \eTD \bTD cc \eTD \eTR \bTR \eTR
+\bTR \bTD aa \eTD \bTD[nr=2] xx \eTD \bTD bb \eTD \bTD cc \eTD \eTR
+\eTABLE
+
+\unskip \quad \ignorespaces
+
+\bTABLE
+\bTR \bTD aa \eTD \bTD[nr=2] xx \eTD \bTD bb \eTD \bTD cc \eTD \eTR
+\bTR \bTD aa \eTD \bTD[nr=2] xx \eTD \bTD bb \eTD \bTD cc \eTD \eTR \bTR \eTR
+\eTABLE
+
+\unskip \egroup
+\StopExample
+
+\StartExample
+\startuniqueMPgraphic{crossed}
+  path p ; p := unitsquare xscaled \overlaywidth yscaled \overlayheight ;
+  fill p withcolor \MPcolor{red} ;
+  drawoptions (withpen pencircle scaled 2pt withcolor \MPcolor{blue}) ;
+  draw p ; draw llcorner p--urcorner p ; draw ulcorner p--lrcorner p ;
+\stopuniqueMPgraphic
+
+\defineoverlay[crossed][\uniqueMPgraphic{crossed}]
+
+\bTABLE[width=.2\textwidth,background=crossed,frame=off]
+\bTR \bTD[align=left]   \getbuffer[knuth-1] \eTD
+     \bTD[align=middle] \getbuffer[knuth-1] \eTD
+     \bTD[align=right]  \getbuffer[knuth-1] \eTD \eTR
+\eTABLE
+\StopExample
+
+\StartExample
+\startuniqueMPgraphic{fill}
+  path p ; p := unitsquare xscaled \overlaywidth yscaled \overlayheight ;
+  fill p withcolor \MPcolor{red} ;
+\stopuniqueMPgraphic
+
+\startuniqueMPgraphic{cross}
+  path p ; p := unitsquare xscaled \overlaywidth yscaled \overlayheight ;
+  drawoptions (withpen pencircle scaled 2pt withcolor \MPcolor{gray}) ;
+  draw llcorner p--urcorner p ; draw ulcorner p--lrcorner p ;
+  draw p withpen pencircle scaled 2pt withcolor \MPcolor{blue} ;
+\stopuniqueMPgraphic
+
+\defineoverlay[fill] [\uniqueMPgraphic{fill}]
+\defineoverlay[cross][\uniqueMPgraphic{cross}]
+
+\bTABLE[width=.2\textwidth,background={fill,foreground,cross},frame=off]
+\bTR \bTD[align=left]   \getbuffer[knuth-1] \eTD
+     \bTD[align=middle] \getbuffer[knuth-1] \eTD
+     \bTD[align=right]  \getbuffer[knuth-1] \eTD \eTR
+\eTABLE
+\StopExample
+
+% \StartExample
+% \startuniqueMPgraphic{hashed}
+%   stripe_path_a
+%    (withpen pencircle scaled \overlaylinewidth withcolor blue)
+%    (draw)
+%    unitsquare xscaled \overlaywidth yscaled \overlayheight ;
+% \stopuniqueMPgraphic
+%
+% \defineoverlay[crossed][\uniqueMPgraphic{hashed}]
+%
+% \setupTABLE[column][width=.2\textwidth,background=striped,frame=off]
+% \bTABLE
+%   \bTR
+%     \bTD[align=left]   left   \par in the first place \eTD
+%     \bTD[align=middle] middle \par a second position  \eTD
+%     \bTD[align=right]  right  \par the third term     \eTD
+%   \eTR
+% \eTABLE
+% \StopExample
+
+% first attempt
+% second best
+% third at last
+
+% ok
+
+\StartExample
+\setupTABLE[row][odd] [background=color,backgroundcolor=red,frame=off]
+\setupTABLE[row][even][background=color,backgroundcolor=gray,frame=off]
+
+\bTABLE
+\bTR \bTD first  \eTD \bTD alpha \eTD \bTD one   \eTD \eTR
+\bTR \bTD second \eTD \bTD beta  \eTD \bTD two   \eTD \eTR
+\bTR \bTD third  \eTD \bTD gamma \eTD \bTD three \eTD \eTR
+\eTABLE
+\StopExample
+
+% ok
+
+\StartExample
+\setupTABLE[background=color,backgroundcolor=red,frame=off]
+\setupTABLE[column][2][backgroundcolor=black,color=white]
+
+\bTABLE
+\bTR \bTD a \eTD \bTD $\alpha$ \eTD \bTD i   \eTD \bTD 1 \eTD \eTR
+\bTR \bTD b \eTD \bTD $\beta $ \eTD \bTD ii  \eTD \bTD 2 \eTD \eTR
+\bTR \bTD c \eTD \bTD $\gamma$ \eTD \bTD iii \eTD \bTD 3 \eTD \eTR
+\eTABLE
+\StopExample
+
+% ok
+
+\StartExample
+\bTABLE
+\setupTABLE[column][1][width=175pt]
+\bTR \bTD \getbuffer[knuth-1] \eTD
+     \bTD \getbuffer[knuth-1] \eTD \bTD first  \eTD \eTR
+\bTR \bTD \getbuffer[knuth-2] \eTD
+     \bTD \getbuffer[knuth-2] \eTD \bTD second \eTD \eTR
+\eTABLE
+\StopExample
+
+% ok
+
+\StartExample
+\bTABLE
+\bTR \bTD \getbuffer[knuth-1] \eTD
+     \bTD \getbuffer[knuth-1] \eTD \bTD first  \eTD \eTR
+\bTR \bTD \getbuffer[knuth-2] \eTD
+     \bTD \getbuffer[knuth-2] \eTD \bTD second \eTD \eTR
+\eTABLE
+\StopExample
+
+% ok
+
+\StartExample
+\bTABLE
+\setupTABLE[background=color,backgroundcolor=red,color=gray,frame=off]
+\setupTABLE[column][last][align={middle,lohi}]
+\setupTABLE[1][2]  [backgroundcolor=gray,color=red]
+\setupTABLE[2][1,3][backgroundcolor=gray,color=red]
+\bTR \bTD \getbuffer[knuth-1] \eTD \bTD first quote  \eTD \eTR
+\bTR \bTD \getbuffer[knuth-2] \eTD \bTD second quote \eTD \eTR
+\bTR \bTD \getbuffer[knuth-3] \eTD \bTD third quote  \eTD \eTR
+\eTABLE
+\StopExample
+
+% ok
+
+\StartExample
+\bTABLE
+\bTR \bTD[width=80pt]  \getbuffer[knuth-1] \eTD \bTD first  \eTD \eTR
+\bTR \bTD[width=200pt] \getbuffer[knuth-2] \eTD \bTD second \eTD \eTR
+\eTABLE
+\StopExample
+
+% ok
+
+\StartExample
+\bTABLE
+\bTR \bTD[width=80pt]  \getbuffer[knuth-1] \eTD \bTD first  \eTD \eTR
+\bTR \bTD[width=200pt] \getbuffer[knuth-2] \eTD \bTD second \eTD \eTR
+\bTR \bTD              \getbuffer[knuth-3] \eTD \bTD third  \eTD \eTR
+\eTABLE
+\StopExample
+
+% to do
+
+\StartExample
+\bTABLE
+\bTR \bTD[nc=2] \getbuffer[knuth-1]                         \eTD \eTR
+\bTR \bTD \getbuffer[knuth-2] \eTD \bTD \getbuffer[knuth-2] \eTD \eTR
+\bTR \bTD \getbuffer[knuth-3] \eTD \bTD \getbuffer[knuth-1] \eTD \eTR
+\eTABLE
+\StopExample
+
+% to do
+
+\StartExample
+\bTABLE
+\bTR \bTD[nc=5] \getbuffer[knuth-1]                                     \eTD \eTR
+\bTR \bTD[nc=2] \getbuffer[knuth-2] \eTD \bTD[nc=3] \getbuffer[knuth-2] \eTD \eTR
+\bTR \bTD[nc=3] \getbuffer[knuth-3] \eTD \bTD[nc=2] \getbuffer[knuth-1] \eTD \eTR
+\eTABLE
+\StopExample
+
+% to do
+
+\StartExample
+\bTABLE[width=.5\hsize]
+\bTR \bTD[nc=2] \getbuffer[knuth-1]                         \eTD \eTR
+\bTR \bTD \getbuffer[knuth-2] \eTD \bTD \getbuffer[knuth-2] \eTD \eTR
+\bTR \bTD \getbuffer[knuth-3] \eTD \bTD \getbuffer[knuth-1] \eTD \eTR
+\eTABLE
+\StopExample
+
+% ok
+
+\StartExample
+\bTABLE
+\bTR \bTD[nc=2] \getbuffer[knuth-1] \eTD
+     \bTD[nr=2] \getbuffer[knuth-1] \eTD \eTR
+\bTR \bTD \getbuffer[knuth-2]       \eTD \bTD first  \eTD \eTR
+\bTR \bTD \getbuffer[knuth-3]       \eTD \bTD second \eTD \eTR
+\eTABLE
+\StopExample
+
+% ok
+
+\StartExample
+\setupTABLE                    [frame=off]
+\setupTABLE[column][first]     [leftframe=on]
+\setupTABLE[column][last]      [rightframe=on]
+\setupTABLE[row]   [first]     [topframe=on]
+\setupTABLE[row]   [first,last][bottomframe=on]
+
+\setupTABLE[column][1][alignmentcharacter={.},aligncharacter=yes,align=middle]
+\setupTABLE[column][2][alignmentcharacter={,},aligncharacter=yes,align=middle]
+
+\bTABLE
+\bTR\bTH first     \eTH\bTH second \eTH\bTH third     \eTH\bTH fourth\eTH\eTR
+\bTR\bTD 100.000,00\eTD\bTD 1,0    \eTD\bTD 100.000,00\eTD\bTD 1,0   \eTD\eTR
+\bTR\bTD 10.000,00 \eTD\bTD 10,0   \eTD\bTD 10.000,00 \eTD\bTD 10,0  \eTD\eTR
+\bTR\bTD 100,00    \eTD\bTD 1,00   \eTD\bTD 100,00    \eTD\bTD 1,00  \eTD\eTR
+\bTR\bTD 10        \eTD\bTD 10,00  \eTD\bTD 10        \eTD\bTD 10,00 \eTD\eTR
+\eTABLE
+\StopExample
+
+\StartExample
+\definecolor[back-1][r=.8,g=.8,b=.4]
+\definecolor[back-2][r=.8,g=.8,b=.6]
+\definecolor[back-3][r=.8,g=.8,b=.8]
+
+\setupTABLE[background=color,frame=off,framecolor=white]
+\setupTABLE[row][1]   [rulethickness=2pt,bottomframe=on]
+\setupTABLE[row][1]   [backgroundcolor=back-1]
+\setupTABLE[row][odd] [backgroundcolor=back-2]
+\setupTABLE[row][even][backgroundcolor=back-3]
+
+\bTABLE
+\bTR \bTD aa \eTD \bTD bb \eTD \bTD cc \eTD \bTD dd \eTD \eTR
+\bTR \bTD aa \eTD \bTD bb \eTD \bTD cc \eTD \bTD dd \eTD \eTR
+\bTR \bTD aa \eTD \bTD bb \eTD \bTD cc \eTD \bTD dd \eTD \eTR
+\bTR \bTD aa \eTD \bTD bb \eTD \bTD cc \eTD \bTD dd \eTD \eTR
+\bTR \bTD aa \eTD \bTD bb \eTD \bTD cc \eTD \bTD dd \eTD \eTR
+\bTR \bTD aa \eTD \bTD bb \eTD \bTD cc \eTD \bTD dd \eTD \eTR
+\bTR \bTD aa \eTD \bTD bb \eTD \bTD cc \eTD \bTD dd \eTD \eTR
+\eTABLE
+\StopExample
+
+\StartExample
+\setupTABLE[frame=off,width=3em]
+\setupTABLE[c][each][align={middle,lohi}]
+\setupTABLE[r][1,4][topframe=on]
+\setupTABLE[r][3,4][bottomframe=on]
+\setupTABLE[1,4][2][topframe=on,bottomframe=on]
+\setupTABLE[2][2][topframe=on]
+\setupTABLE[3][2][bottomframe=on]
+
+\bTABLE
+\bTR\bTD1/1\eTD               \bTD1/2\eTD\bTD1/3\eTD\bTD1/4\eTD\bTD1/5\eTD\eTR
+\bTR\bTD2/1\eTD               \bTD2/2\eTD\bTD2/3\eTD\bTD2/4\eTD\bTD2/5\eTD\eTR
+\bTR\bTD[nr=2]3/1 34/1 4/1\eTD\bTD3/2\eTD\bTD3/3\eTD\bTD3/4\eTD\bTD3/5\eTD\eTR
+\bTR                          \bTD4/2\eTD\bTD4/3\eTD\bTD4/4\eTD\bTD4/5\eTD\eTR
+\eTABLE
+\StopExample
+
+\StartExample
+\defineTABLEsetup [xx] [foregroundcolor=red]
+\defineTABLEsetup [zz] [backgroundcolor=blue]
+\bTABLE
+    \bTR      \bTD      oeps \eTD  \bTD oeps \eTD \bTDs[zz] oeps \eTDs \eTR
+    \bTR      \bTDs[xx] oeps \eTDs \bTD oeps \eTD \bTD      oeps \eTD  \eTR
+    \bTRs[xx] \bTD      oeps \eTD  \bTD oeps \eTD \bTDs[zz] oeps \eTDs \eTRs
+\eTABLE
+\StopExample
+
+\stopdocument


Property changes on: trunk/Master/texmf-dist/doc/context/sources/general/manuals/examples/examples-naturaltables.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/context/sources/general/manuals/examples/examples-style-math.tex
===================================================================
--- trunk/Master/texmf-dist/doc/context/sources/general/manuals/examples/examples-style-math.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/context/sources/general/manuals/examples/examples-style-math.tex	2025-02-19 22:48:50 UTC (rev 74156)
@@ -0,0 +1,239 @@
+% language=us
+
+\startenvironment examples-style-math
+
+\def\ExampleLanguages{\currentmainlanguage}
+
+\setupframedtext
+  [result]
+  [align=flushleft]
+
+%definefontfeature[fixedwidth][fixedwidth=0.30]
+%definefontfeature[fixedwidth][fixedwidth=0.28]
+\definefontfeature[fixedwidth][fixedwidth=0.27]
+
+% \definefontfallback
+%   [MonoMathMath]
+%   [dejavusansmono.ttf*fixedwidth]
+%   [0x0400-0x600][rscale=.8]
+
+\definefontfallback
+  [MonoMathMath]
+  [cmuntt.otf*fixedwidth]
+  [0x0400-0x600]
+
+\definefontfallback
+  [MonoMathMath]
+  [concrete-math.otf*fixedwidth]
+  [0x0600-0x1FFFF]
+
+\definefontsynonym
+  [MonoMathBase]
+  [lmmono10-regular.otf*fixedwidth]
+  [fallbacks=MonoMathMath]
+
+% \definefontfallback
+%   [MonoTextMath]
+%   [dejavusansmono.ttf*fixedwidth]
+%   [0x0400-0x600][rscale=.8]
+
+\definefontfallback
+  [MonoTextMath]
+  [cmuntt.otf*fixedwidth]
+  [0x0400-0x600]
+
+\definefontfallback
+  [MonoTextMath]
+  [concrete-math.otf]
+  [0x0600-0x1FFFF]
+
+\definefontsynonym
+  [MonoTextBase]
+  [lmmono10-regular.otf]
+  [fallbacks=MonoTextMath]
+
+\definefontsynonym
+  [MonoMathBaseBold]
+  [lmmonolt10-bold.otf*fixedwidth]
+  [fallbacks=MonoMathMath]
+
+\definefont[MyMathFont]    [MonoMathBase]
+\definefont[MyMathFontBold][MonoMathBaseBold]
+\definefont[MyTextFont]    [MonoTextBase]
+
+\setuptyping
+  [style=MyMathFont]
+
+% \setupmathematics[domain=default]
+
+\starttexdefinition protected ShowExampleMeaning #1
+    \begingroup
+        \ifcstok{#1}\currentmainlanguage
+            \darkblue
+        \orelse\ifcstok{#1}{debug}%
+            \darkgray
+        \fi
+        \getmathtextblob{#1}\currentmathblob
+    \endgroup
+    \blank[medium]
+\stoptexdefinition
+
+% \starttexdefinition protected StartExample
+%     \begingroup
+%     \obeylines
+%     \doifnextcharelse[\StartExampleYES\StartExampleNOP
+% \stoptexdefinition
+
+% \starttexdefinition tolerant protected StartExampleYES[#1]
+%     \doifelsemode {issues} {
+%         \definecolor[issuecolor][darkred]
+%         \doifelse {#1} {issue} {
+%             \dostartbuffer[example][StartExample][StopExample]
+%         } {
+%             \endgroup
+%             \gobbleuntil\StopExample
+%         }
+%     } {
+%         \doif {#1} {issue} {
+%             \definecolor[issuecolor][darkred]
+%         }
+%         \dostartbuffer[example][StartExample][StopExample]
+%     }
+% \stoptexdefinition
+
+% \starttexdefinition tolerant protected StartExampleNOP
+%     \doifelsemode {issues} {
+%         \endgroup
+%         \gobbleuntil\StopExample
+%     } {
+%         \dostartbuffer[example][StartExample][StopExample]
+%     }
+% \stoptexdefinition
+
+\starttexdefinition protected StartExample
+    \begingroup
+    \begingroup
+    \obeylines
+    \doifnextcharelse[\StartExampleYES\StartExampleNOP
+\stoptexdefinition
+
+\starttexdefinition tolerant protected StartExampleYES[#1]
+    \endgroup
+    \doifelsemode {issues} {
+        \definecolor[issuecolor][darkred]
+        \doifelse {#1} {issue} {
+            \dostartbuffer[example][StartExample][StopExample]
+        } {
+            \gobbleuntil\StopExample
+        }
+    } {
+        \doif {#1} {issue} {
+            \definecolor[issuecolor][darkred]
+        }
+        \dostartbuffer[example][StartExample][StopExample]
+    }
+\stoptexdefinition
+
+\starttexdefinition tolerant protected StartExampleNOP
+    \endgroup
+    \doifelsemode {issues} {
+        \endgroup
+        \gobbleuntil\StopExample
+    } {
+        \dostartbuffer[example][StartExample][StopExample]
+    }
+\stoptexdefinition
+
+\starttexdefinition protected StopExample
+    \startresult[none][foregroundcolor=issuecolor]
+        \getbuffer[example]
+    \stopresult
+    \vskip5mm
+    \savemathexport[buffer=mmldata,xoption=ascii]
+    \begingroup
+        \MyTextFont \raggedright
+        \processcommacommand[\ExampleLanguages]\ShowExampleMeaning
+    \endgroup
+    \begingroup
+        \switchtobodyfont[6pt]
+      % \switchtobodyfont[7pt]
+      % \let\slxbold\relax
+        \def\slxbold{\MyMathFontBold}%
+        \typebuffer[example][option=TEX]
+        \scratchcounterone\nofbufferlines{mmldata}
+        \ifnum\scratchcounterone>\zerocount
+            \scratchcountertwo\maxbufferwidth{mmldata}
+            \scratchcounterthree\ctxlua{context(
+                \number\textwidth//(\number\scratchcountertwo*\number\emwidth)
+            )}\relax % columns needed
+            \scratchcounterfour\ctxlua{context(
+                \number\textheight//\number\pagetotal
+            )}\relax % available
+            \ifnum\scratchcounterthree=\zerocount
+                \typebuffer[mmldata][option=XML,n=\the\currentmathblob]%
+            \orelse\ifnum\scratchcounterone>\scratchcounterfour
+                \startcolumns[n=\scratchcounterthree,balance=no]
+                    \typebuffer[mmldata][option=XML,n=\the\currentmathblob]%
+                \stopcolumns
+            \else
+                \typebuffer[mmldata][option=XML,n=\the\currentmathblob]%
+            \fi
+        \fi
+    \endgroup
+    \endgroup
+    \page
+\stoptexdefinition
+
+% Setting up math:
+
+% \setupnote[mathnote][location=page]
+% \enabletrackers[math.textblobs]
+
+\disabledirectives[structures.tags.shipout]
+\enabledirectives [structures.tags.math.standalone]
+% \disabledirectives[structures.tags.math.strip]
+
+\setuptagging
+  [state=start]
+
+\definemathgroupset
+  [demogroupset]
+  [every]
+
+\setmathgroupset
+  [demogroupset]
+
+% This depends on the math used:
+
+% \registermathfunction[𝑓]
+% \registermathfunction[𝑔]
+
+% \registermathsymbol[default][en][𝐮][the vector]
+% \registermathsymbol[default][en][𝐯][the vector]
+% \registermathsymbol[default][en][𝖠][the matrix]
+
+% \registermathsymbol[default][en][lowercasebold]           [the vector] % [of]
+% \registermathsymbol[default][en][uppercasesansserifnormal][the matrix]
+
+% \registermathsymbol[default][sv][𝐮][vektorn]
+% \registermathsymbol[default][sv][𝐯][vektorn]
+
+% \registermathsymbol[default][sv][lowercasebold]           [vektorn]
+% \registermathsymbol[default][sv][uppercasesansserifnormal][matrisen]
+
+% \registermathsymbol[default][en][𝒞][the continuous functions]
+% \registermathsymbol[default][sv][𝒞][de kontinuerliga funktionerna]
+
+% Take your choice:
+
+% \def\ExampleLanguages{en,sv}
+% \def\ExampleLanguages{debug,en,sv}
+% \def\ExampleLanguages{debug,en,sv,nl}
+
+% \enablemode[issues]
+
+% \enabletrackers[structures.tags.math.times]
+% \enabletrackers[structures.tags.math.keeplast=mmldata]
+% \enabletrackers[structures.tags.math.save]
+
+\stopenvironment


Property changes on: trunk/Master/texmf-dist/doc/context/sources/general/manuals/examples/examples-style-math.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/context/sources/general/manuals/examples/examples-style.tex
===================================================================
--- trunk/Master/texmf-dist/doc/context/sources/general/manuals/examples/examples-style.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/context/sources/general/manuals/examples/examples-style.tex	2025-02-19 22:48:50 UTC (rev 74156)
@@ -0,0 +1,157 @@
+% language=us
+
+\startenvironment examples-style
+
+\usemodule[scite]
+
+\setupbodyfont[palatino,10pt]
+
+\setuppapersize
+  [S6][S6]
+
+\setupinteractionscreen
+  [option=max]
+
+\setuplayout
+  [topspace=10pt,
+   backspace=10pt,
+   width=middle,
+   height=395pt,
+   top=0cm,
+   bottom=20pt,
+   bottomdistance=15pt,
+   header=0cm,
+   footer=0cm]
+
+\definecolor[green] [r=.2,g=.6,b=.2]
+\definecolor[red]   [r=.6,g=.2,b=.2]
+\definecolor[blue]  [r=.2,g=.2,b=.6]
+\definecolor[yellow][r=1,g=1,b=.75]
+\definecolor[gray]  [s=.4]
+\definecolor[white] [s=.8]
+
+\setupinteraction
+  [state=start,
+   menu=on,
+   color=darkgray,
+   contrastcolor=middlegray]
+
+\setupbackgrounds
+  [page]
+  [background=color,
+   backgroundoffset=5pt,
+   backgroundcolor=darkgray]
+
+\defineframedtext
+  [result]
+  [background=color,
+   backgroundcolor=lightgray,
+   backgroundoffset=5pt,
+   strut=no,
+   depthcorrection=no,
+   frame=off,
+   frameoffset=5.1pt,
+   bottomframe=on,
+   rulethickness=2.5pt,
+   framecolor=darkgray,
+   offset=0pt,
+   width=\textwidth]
+
+\setupbackgrounds
+  [text][text]
+  [background=color,
+   backgroundoffset=5pt,
+   backgroundcolor=lightgray]
+
+\setupbackgrounds
+  [bottom][text]
+  [background=color,
+   backgroundoffset=5pt,
+   backgroundcolor=lightgray]
+
+\starttexdefinition protected StartExample
+    \dostartbuffer[example][StartExample][StopExample]
+\stoptexdefinition
+
+\starttexdefinition protected StopExample
+    \startresult[none]
+    \getbuffer[example]
+    \stopresult
+    \bgroup
+    \switchtobodyfont[9pt]
+    \typebuffer[example]
+    \egroup
+    \page
+\stoptexdefinition
+
+\setupinteractionmenu
+  [bottom]
+  [state=start,
+   left=,
+   right=,
+   middle=\quad,
+   style=\bfa\setstrut,
+   color=darkgray,
+   contrastcolor=middlegray]
+
+\startinteractionmenu[bottom]
+    \startgot [firstpage]
+        \darkblue
+        \ifnum\realpageno>\plusone
+            \documentvariable{title}
+        \else
+            \documentvariable{author}
+        \fi
+    \stopgot
+    \hfill
+    \startgot [firstpage]     begin    \stopgot
+    \startgot [previouspage]  previous \stopgot
+    \startgot [nextpage]      next     \stopgot
+    \startgot [CloseDocument] quit     \stopgot
+    \quad
+    \starttxt \hbox to 2em\bgroup
+        \hss
+        \ifnum\realpageno>\zerocount
+            \pagenumber
+        \fi
+    \egroup \stoptxt
+\stopinteractionmenu
+
+% \setuptyping
+%   [color=darkblue,
+%    blank=halfline]
+
+\setuptype
+  [color=darkblue]
+
+\setuptyping
+  [blank=halfline]
+
+\startsetups document:start
+    \startstandardmakeup
+        \startcolor[darkblue]
+            \start
+                \definedfont [RegularBold at 60pt]\setstrut
+                \setstrut\strut \documentvariable{title} \par
+            \stop
+            \start
+                \definedfont [RegularBold at 45pt]\setstrut
+                \setstrut\strut in \ConTeXt\
+            \stop
+            \vfilll
+            \start
+                \definedfont [RegularBold at 45pt]\setstrut
+              % \hfill
+                \setstrut\strut Examples
+            \stop
+        \stopcolor
+    \stopstandardmakeup
+\stopsetups
+
+\startsetups document:stop
+    \page
+    \getbuffer[colophon]
+    \stoptext
+\stopsetups
+
+\stopenvironment


Property changes on: trunk/Master/texmf-dist/doc/context/sources/general/manuals/examples/examples-style.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/context/sources/general/manuals/followingup/followingup-directions.tex
===================================================================
--- trunk/Master/texmf-dist/doc/context/sources/general/manuals/followingup/followingup-directions.tex	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/sources/general/manuals/followingup/followingup-directions.tex	2025-02-19 22:48:50 UTC (rev 74156)
@@ -390,7 +390,7 @@
 chinese glyphs:
 
 \startbuffer
-\definefont[NotoCJK][NotoSansCJKtc-Regular*default @ 24pt]
+\definefont[NotoCJK][NotoSansCJKtc-VF*default @ 24pt]
 \stopbuffer
 
 \typebuffer \getbuffer
@@ -732,7 +732,7 @@
 \startbuffer[3b]
 \definefont
   [NotoCJKvertical]
-  [NotoSansCJKtc-Regular*default,vertical @ 24pt]
+  [NotoSansCJKtc-VF*default,vertical @ 24pt]
 \stopbuffer
 
 \typebuffer[3b]

Modified: trunk/Master/texmf-dist/doc/context/sources/general/manuals/fonts/fonts-features.tex
===================================================================
--- trunk/Master/texmf-dist/doc/context/sources/general/manuals/fonts/fonts-features.tex	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/sources/general/manuals/fonts/fonts-features.tex	2025-02-19 22:48:50 UTC (rev 74156)
@@ -1,4 +1,4 @@
-% language=us runpath=texruns:manuals/fonts
+ language=us runpath=texruns:manuals/fonts
 
 \startcomponent fonts-features
 
@@ -2737,6 +2737,46 @@
 
 \stopsection
 
+\startsection[title=Kerns again]
+
+Kerns are not that bound to scripts but still fonts group them in scripts. When you have a
+mixed document, you might want to enable kerns for multiple scripts. Here is a test you
+can conduct:
+
+\startbuffer
+% \definefontscriptset[mixed][dflt,latn,cyrl,grek] % predefined
+
+\startTEXpage[offset=1ts]
+    \definedfont[cambria*default] \showfontkerns
+
+    {\language[english]All human beings are born free and equal in dignity and
+    rights. They are endowed with reason and conscience and should act towards one
+    another in a spirit of brotherhood.}
+
+    {\language[ukrainian]Всі люди народжуються вільними і рівними у своїй гідності та
+    правах. Вони наділені розумом і совістю і повинні діяти у відношенні один до
+    одного в дусі братерства.}
+
+    {\language[greek]'Ολοι οι άνθρωποι γεννιούνται ελεύθεροι και ίσοι στην
+    αξιοπρέπεια και τα δικαιώματα. Είναι προικισμένοι με λογική και συνείδηση, και
+    οφείλουν να συμπεριφέρονται μεταξύ τους με πνεύμα αδελφοσύνης.}
+\stopTEXpage
+
+\start                                                    \getbuffer \stop
+\start \definefontfeature[default][default][script=mixed] \getbuffer \stop
+\start \definefontfeature[default][default][kern=always]  \getbuffer \stop
+\stopbuffer
+
+\typebuffer
+
+This \quote {mixed} option was made for Noto Serif (per 2024) but for that font
+one has to find a sample that actually has kerns (as there are not that many).
+Cambria shows it. Some fonts have no kerns in cyrillic, others not in greek but
+there are also fonts that just enable all kerns which is good. The \quote
+{always} feature has always been there.
+
+\stopsection
+
 \stopchapter
 
 \stopcomponent

Modified: trunk/Master/texmf-dist/doc/context/sources/general/manuals/graphics/graphics.tex
===================================================================
--- trunk/Master/texmf-dist/doc/context/sources/general/manuals/graphics/graphics.tex	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/sources/general/manuals/graphics/graphics.tex	2025-02-19 22:48:50 UTC (rev 74156)
@@ -31,8 +31,8 @@
    topoffset=10pt,
    leftoffset=10pt,
    location=paragraph,
-   backgroundcolor=mysetupscolora,
-   backgroundcolor=mysetupscolorb,
+%    backgroundcolor=mysetupscolora,
+%    backgroundcolor=mysetupscolorb,
    frame=off]
 
 \startsetups xml:setups:start

Modified: trunk/Master/texmf-dist/doc/context/sources/general/manuals/languages/languages-basics.tex
===================================================================
--- trunk/Master/texmf-dist/doc/context/sources/general/manuals/languages/languages-basics.tex	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/sources/general/manuals/languages/languages-basics.tex	2025-02-19 22:48:50 UTC (rev 74156)
@@ -39,7 +39,10 @@
 
 \typebuffer
 
-Instead you can run \type {context --global languages-system.mkiv}.
+Instead you can run \type {context --global languages-system.mkiv}. Most
+languages have a two character tag but also a more verbose one. Not all two
+characters names are available as control sequence! Use the more verbose ones
+when possible.
 
 As you can see, many languages have hyphenation patterns but for Japanese,
 Korean, Chinese as well as Arabic languages they make no sense. The patterns are

Modified: trunk/Master/texmf-dist/doc/context/sources/general/manuals/languages/languages-environment.tex
===================================================================
--- trunk/Master/texmf-dist/doc/context/sources/general/manuals/languages/languages-environment.tex	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/sources/general/manuals/languages/languages-environment.tex	2025-02-19 22:48:50 UTC (rev 74156)
@@ -2,6 +2,8 @@
 
 \startenvironment languages-environment
 
+%     \usebodyfont[modern]
+
     \environment manuals-explaining-environment
     \environment manuals-explaining-cover
 

Modified: trunk/Master/texmf-dist/doc/context/sources/general/manuals/languages/languages-hyphenation.tex
===================================================================
--- trunk/Master/texmf-dist/doc/context/sources/general/manuals/languages/languages-hyphenation.tex	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/sources/general/manuals/languages/languages-hyphenation.tex	2025-02-19 22:48:50 UTC (rev 74156)
@@ -365,7 +365,37 @@
 \setupindenting[no]\hsize 1mm \lefthyphenmin 1 \righthyphenmin 1 \getbuffer
 \stophyphenation
 
+Some languages are a bit picky with respect to ligatures and hyphenation so we
+have ways to control this.
 
+% \zwj  : no ligatures
+% \zwnj : no kerns either
+
+\startbuffer
+\startexceptions[de]
+begri{ff-}{l}{ffl}(f\zwj fl)ich
+xegri{ff-}{l}{ffl}(ff\zwj l)ich
+zegri{ff-}{l}{ffl}(ffl)ich
+wegri{ff-}{l}{ffl}(f\zwj f\zwj l)ich
+\stopexceptions
+\stopbuffer
+
+\typebuffer \getbuffer
+
+Here \type {\zwj} prevents a ligature and \type {\zwnj} prevents a ligature as
+well as a font kern (in for instance Latin Modern ligatures are a bit more
+distinctive).
+
+\startlinecorrection
+    \showglyphs \showfontkerns
+    \startcombination[2*2]
+        {\de\glyphscale\numexpr4*\glyphscale\relax begrifflich} {}
+        {\de\glyphscale\numexpr4*\glyphscale\relax xegrifflich} {}
+        {\de\glyphscale\numexpr4*\glyphscale\relax zegrifflich} {}
+        {\de\glyphscale\numexpr4*\glyphscale\relax wegrifflich} {}
+    \stopcombination
+\stoplinecorrection
+
 \stopsection
 
 \startsection[title=Boundaries]

Modified: trunk/Master/texmf-dist/doc/context/sources/general/manuals/languages/languages-mkiv.tex
===================================================================
--- trunk/Master/texmf-dist/doc/context/sources/general/manuals/languages/languages-mkiv.tex	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/sources/general/manuals/languages/languages-mkiv.tex	2025-02-19 22:48:50 UTC (rev 74156)
@@ -19,6 +19,15 @@
 
 \enablemode[simple] % ,oversized
 
+% todo:
+%
+% \setuplanguage[sv][apostrophe=yes]
+% \starttext
+%     {\noapostrophes how about mikael's latest lecture notes}
+%     {\doapostrophes how about mikael's latest lecture notes}
+%     {\sv how about mikael's latest lecture notes}
+% \stoptext
+
 \startbuffer[abstract]
 
     This book explains how we support languages (and scripts) in \CONTEXT\ \MKIV\

Modified: trunk/Master/texmf-dist/doc/context/sources/general/manuals/lowlevel/lowlevel-accuracy.tex
===================================================================
--- trunk/Master/texmf-dist/doc/context/sources/general/manuals/lowlevel/lowlevel-accuracy.tex	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/sources/general/manuals/lowlevel/lowlevel-accuracy.tex	2025-02-19 22:48:50 UTC (rev 74156)
@@ -8,6 +8,8 @@
 
 \startsectionlevel[title=Introduction]
 
+{\em This is work in progress, uncorrected.}
+
 When you look at \TEX\ and \METAPOST\ output the accuracy of the rendering stands
 out, unless of course you do a sloppy job on design and interfere badly with the
 system. Much has to do with the fact that calculations are very precise,

Added: trunk/Master/texmf-dist/doc/context/sources/general/manuals/lowlevel/lowlevel-balancing.tex
===================================================================
--- trunk/Master/texmf-dist/doc/context/sources/general/manuals/lowlevel/lowlevel-balancing.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/context/sources/general/manuals/lowlevel/lowlevel-balancing.tex	2025-02-19 22:48:50 UTC (rev 74156)
@@ -0,0 +1,984 @@
+% language=us runpath=texruns:manuals/lowlevel
+
+\environment lowlevel-style
+
+\startdocument
+  [title=balancing,
+   color=middlecyan]
+
+\startsectionlevel[title=Introduction]
+
+{\em This is work in progress as per end 2024 these mechanisms are still in flux.
+We expect them to be stable around the \CONTEXT\ meeting in 2025. The text is not
+corrected, so feel free to comment.}
+
+This manual is about a new (sort of fundamental) feature that got added to
+\LUAMETATEX\ when we started upgrading column sets. In \TEX\ we have a par
+builder that does a multi|-|pass optimization where it considers various
+solutions based on tolerance, penalties, demerits etc. The page builder on the
+other hand is forward looking and backtracks to a previous break when there is an
+overflow. The balancing mechanism discussed here is basically a page builder
+operating like the par builder: it looks at the whole picture.
+
+In order to make this a useful mechanism the engine also permits intercepting the
+main vertical list, so we start by introducing this.
+
+\stopsectionlevel
+
+\startsectionlevel[title=Intercepting the MVL]
+
+When content gets processed it's added to a list. We can be in horizontal mode or
+vertical mode (let's forget about math mode). In vertical mode we can be in a box
+context (say \type {\vbox}) or in what is called the main vertical list: the one
+that makes the page. But what is page? When \TEX\ has collected enough to match
+the criteria set by \type {\pagegoal} which starts out as \type {\vsize}, it will
+call the so called output routine which basically is expanding the \type
+{\output} token list. That routine had do so something with the box that has the
+collected material. It can become a page, likely with the content wrapped in a
+page body with headers and footers and such, but it can also be stored for later
+assembly, for instance in multiple columns, or after some analysis fed back into
+the main vertical list.
+
+For various mechanisms it matters if they are used inside a contained boxed
+environment or in the more liberal main vertical list (from now on called mvl).
+That's why we can intercept the mvl and use it later. Intercepting works as
+follows:
+
+\starttyping
+\beginmvl 1
+various content
+\endmvl
+
+\beginmvl 2
+various content
+\endmvl
+\stoptyping
+
+When at some point you want this content, you can do this:
+
+\starttyping
+\setbox\scratchboxone\flushmvl 2
+\setbox\scratchboxtwo\flushmvl 1
+\stoptyping
+
+and then do whatever is needed. You can see what goes on with:
+
+\starttyping
+\tracingmvl 1
+\stoptyping
+
+There is not much more to say other than that this is the way to operate on
+content as if it were added to the page which can be different from collecting
+something in a vertical box. Think of various callbacks that can differ for the
+mvl and a box.
+
+The \type {\beginmvl} primitive takes a number or a set of keywords, as in:
+
+\starttyping
+\beginmvl
+    index   1
+    options \numexpr "01 + "04\relax
+\relax
+\stoptyping
+
+There is of course some possible interference with mechanism that check the page
+properties like \type {\pagegoal}. If needed one can check this:
+
+\starttyping
+\ifcase\mvlcurrentlyactive
+  % main mvl
+\or
+  % first one
+\else
+  % other ones
+\fi
+\stoptyping
+
+Possible applications of this mechanism are the mentioned columns and parallel,
+independent, streams. However for that we need to be able to manipulate the
+collected content. Actually, the next manipulator preceded the capturing, because
+we first wanted to make sure that what we had in mind made sense.
+
+The \type {beginmvl} also accepts keywords. You can specify an \type {index} (an
+integer), a \type {prevdepth} (dimensions) and \type {options} (an integer
+bitset). Possible option bit related values are:
+
+\starttabulate[|Tr|||]
+\NC 0x\tohexadecimal\ignoreprevdepthmvloptioncode \NC ignore prevdepth \NC \type {\ignoreprevdepthmvloptioncode} \NC \NR
+\NC 0x\tohexadecimal\noprevdepthmvloptioncode     \NC no prevdepth     \NC \type {\noprevdepthmvloptioncode    } \NC \NR
+\NC 0x\tohexadecimal\discardtopmvloptioncode      \NC discard top      \NC \type {\discardtopmvloptioncode     } \NC \NR
+\NC 0x\tohexadecimal\discardbottommvloptioncode   \NC discard bottom   \NC \type {\discardbottommvloptioncode  } \NC \NR
+\stoptabulate
+
+Here the last column is a numeric alias available in \CONTEXT. More options are
+likely to show up. When we eventually will balance these lists the routine will
+deal with the discardables (like glue) but one can also remove them via the
+options.
+
+\startbuffer
+\beginmvl
+    index     1
+    prevdepth 0pt
+    options  \discardtopmvloptioncode
+\relax
+\scratchdimen\prevdepth
+\dontleavehmode
+\quad\the\mvlcurrentlyactive\quad\the\scratchdimen
+\quad\blackrule[height=\strutht,depth=\strutdp,color=darkred]
+\endmvl
+
+\ruledhbox {\llap{1\quad}\flushmvl 1}
+\stopbuffer
+
+\typebuffer \start \showmakeup[line] \getbuffer \stop
+
+\startbuffer
+\beginmvl
+    index  2
+    options \numexpr
+                \ignoreprevdepthmvloptioncode
+              + \discardtopmvloptioncode
+            \relax
+\relax
+\scratchdimen\prevdepth
+\dontleavehmode
+\quad\the\mvlcurrentlyactive\quad\the\scratchdimen
+\quad\blackrule[height=\strutht,depth=\strutdp,color=darkred]
+\endmvl
+
+\ruledhbox {\llap{2\quad}\flushmvl 2}
+\stopbuffer
+
+\typebuffer \start \showmakeup[line] \getbuffer \stop
+
+\startbuffer
+\beginmvl 3 % when no keywords are used we expect a number
+\scratchdimen\prevdepth
+\dontleavehmode
+\quad\the\mvlcurrentlyactive\quad\the\scratchdimen
+\quad\blackrule[height=\strutht,depth=\strutdp,color=darkred]
+\endmvl
+
+\ruledhbox {\llap{3\quad}\flushmvl 3}
+\stopbuffer
+
+\typebuffer \start \showmakeup[line] \getbuffer \stop
+
+\startbuffer
+\beginmvl index 4 options 1
+\scratchdimen\prevdepth
+\dontleavehmode
+\quad\the\mvlcurrentlyactive\quad\the\scratchdimen
+\quad\blackrule[height=\strutht,depth=\strutdp,color=darkred]
+\endmvl
+
+\ruledhbox {\llap{4\quad}\flushmvl 4}
+\stopbuffer
+
+\typebuffer \start \showmakeup[line] \getbuffer \stop
+
+\stopsectionlevel
+
+\startsectionlevel[title=Balancing]
+
+Balancing is not referring to balancing columns but to \quote {a result that
+looks well balanced}. Just like we want lines in a paragraph to look consistent
+with each other, something that is reflected in the (adjacent) demerits, we want
+the same with vertical split of pieces. For this purpose we took elements of the
+par builders to construct a (page) snippet builder. Here are some highlights:
+
+\startitemize
+
+\startitem
+    Instead of a pretolerance, tolerance and emergency pass we only enable the
+    last two. In the par builder the pretolerance pass is the one without
+    hyphenation.
+\stopitem
+
+\startitem
+    We seriously considered vertical discretionaries but eventually rejected the
+    idea: we just don't expect users to go through the trouble of adding lots of
+    split related pre, post and replace content. It's not hard to support it but
+    in the end it also interfered with other demands that we had. We kept the
+    code around for a while but then removed it. To mention one complication: if
+    we add some new node we also need to intercept it in various callbacks that
+    we already have in place in \CONTEXT. As with horizontal discretionaries, we
+    then need to go into the components and sometimes even need to make decisions
+    what can not yet be made.
+\stopitem
+
+\startitem
+    As with the par builder, \TEX\ will happily produce an overfull box when no
+    solution is possible that fits the constraints. In a paragraph there are
+    plenty spaces (with stretch) and discretionaries (with components that vary
+    in width) which enlarges the solution space. In vertical material there is
+    less possible so there an emergency pass really makes sense: better be
+    underful than overful.
+\stopitem
+
+\startitem
+    In many cases there is no stretch available. There are also widow, club,
+    shape and orphan penalties that can limit the solution space.
+\stopitem
+
+\startitem
+    When we look at splitting pages (and boxes) we see (split) top skip kick in.
+    This is something that we need to provide one way ot the other. And as we
+    have to do that, we can as well provide support for bottom skip. A horizontal
+    analogue is protrusion, something that also has to be taken into account in a
+    rather dynamic way, at the beginning or end of the currently analyzed line.
+\stopitem
+
+\startitem
+    There is no equivalent of hanging indentation but a shape makes sense. Here
+    the shape defines heights, top and bottom skips and maybe more in the future.
+    For that reason we use a keyword driven shape.
+\stopitem
+
+\startitem
+    Because we have so called par passes, it made sense to have something similar
+    for balancing. This gives is the opportunity to experiment with various
+    variables that drive the process.
+\stopitem
+
+\startitem
+    For those who read what we wrote about the par builder, it will not come as
+    surprise that we also added extensive tracing and a callback for intercepting
+    the results. This makes it possible to show the same detailed output as we
+    can do for par passes.
+\stopitem
+
+\stopitemize
+
+It's about time for some examples but before we come to that it is good to
+roughly explain how the page builder works. When the page builder is triggered it
+will take elements from the contributions list and add them to the page. When
+doing that it keeps track of the height and depth as contributed by boxes and
+rules. Because it will discard glue and kerns it does some checking there. An
+important feature is that the depth is added in a next iteration. The routine
+also needs to look at inserts. The variables \type {\pagegoal} (original \type
+{\vsize} minus accumulated insert heights) and \type {\pagetotal} are compared
+and when we run over the target height the accumulated stretch and shrink in glue
+(when present) will be used to determine how bad this break is. If it is too bad,
+the previous best break will be taken. Penalties can make a possible break more
+or less attractive. When the output routine gets a split of page, the total is
+not reliable because we can have backtracked to the previous break. In
+\LUAMETATEX\ we have some more variables, like \type {\pagelastheight}, that give
+a better estimate of what we got.
+
+In order to make the first lines align properly relative to the top of the page
+there is a variable \type {\topskip}. The height of the first line is at least
+that amount. The correction is calculated when the first contribution happens: a
+box or rule.
+
+When we look at the balancer it is good to keep in mind that where the page
+builder stepwise adds and checks, the balancer looks at the whole picture. The
+page builder does a decent job but is less sophisticated than the par builder.
+There is a badness calculation, penalties are looked at, glue is taken into
+account but there are no demerits.
+
+We want the balancer to work well with column sets that are very much grid based.
+But in getting there we had some hurdles to take. Because the algorithm (like the
+par builder) happily results in overfull boxes unless emergency stretch is set,
+pages can overflow. When there is no stretch and|/|or shrink using emergency
+stretch can give an underfull page.
+
+The way out of this is to have non destructive trial passes and decrease the
+number of lines. Of course we can get short pages but when for instance it
+concerns a section title that gets moved this is no big deal. In a similar
+fashion splitting a multi|-|line formula is also okay.
+
+\startitemize
+\startitem
+    Collect the content in an mvl list and after that's done put the result in a
+    box.
+\stopitem
+\startitem
+    Set up a balance shape that specifies the slots in in columns (normally a
+    column is just a blob of text).
+\stopitem
+\startitem
+    Perform a trial balance run. As soon as an overfull page is seen, adapt the
+    balance shape and do a new trial run.
+\stopitem
+\startitem
+    When we're fine, either because we reached the end without overfull column or
+    by passing the set deadcycles value, quit the trial process and balance the
+    original list using the most recent balance shape.
+\stopitem
+\startitem
+    Flush the result by fetching the topmost from the result split collection and
+    feed it into the page flow. The boxed pseudo page will happily trigger the
+    output routine that in turn construct the final page.
+\stopitem
+\stopitemize
+
+At some point we decided to support multiple mvl streams and therefore changed
+the last mentioned step. Because we store the whole column set we can as well
+also store the assembled page bodies. This way we can flush different streams into
+the same result.
+
+\startitemize
+\startitem
+    Flush the result by fetching the topmost from the result split collection and
+    feed it into the page flow. Do this for every saved (mvl) stream.
+\stopitem
+\startitem
+    When we're done, the boxed pseudo pages will be flushed as pages. In the
+    process, for every page we identify marks.
+\stopitem
+\stopitemize
+
+We are now ready to look at some examples. Here we also show what balance shapes
+do. These basically describe a sequence of slots to be filled. The last
+specification is used when we exceed the number of defined slots. These are just
+examples of simple situations, for real applications more code is needed.
+
+\startbuffer[one]
+\setbox\scratchboxone\vbox\bgroup
+    \hsize.30\hsize
+    \samplefile{tufte}
+\egroup
+\stopbuffer
+
+\startbuffer[two]
+\balanceshape 3
+    vsize      12\lineheight
+    topskip    \strutht
+    bottomskip \strutdp
+next
+    vsize       5\lineheight
+    topskip    \strutht
+    bottomskip \strutdp
+next
+    vsize      8\lineheight
+    topskip    \strutht
+    bottomskip \strutdp
+\relax
+\stopbuffer
+
+\startbuffer[three]
+\setbox\scratchboxtwo\vbalance\scratchboxone
+\stopbuffer
+
+\startbuffer[four]
+\hbox \bgroup
+    \localcontrolledendless {%
+        \ifvoid\scratchboxtwo
+            \expandafter\quitloop
+        \else
+            \setbox\scratchbox\ruledhbox\bgroup
+                \vbalancedbox\scratchboxtwo
+            \egroup
+            \vbox to 12\lineheight \bgroup
+                \box\scratchbox
+                \vfill
+            \egroup
+            \hskip1em
+        \fi
+    }\unskip
+\egroup
+\stopbuffer
+
+We start with some content in a box. This can of course be a flushed
+mvl but here we just set it directly:
+
+\typebuffer[one]
+
+We will split this box in columns. If you are familiar with \TEX\ you might know
+that a paragraph of text can follow a shape defined by \type {\parshape}. In a
+similar way as lines are split by width, we can split a vertical list by height.
+For that we define a balance shape:
+
+\typebuffer[two]
+
+\typebuffer[three]
+
+Contrary to a \type {\parshape}, a \type {\balanceshape} is not wiped after the
+work is done. It also expects keys and values. As with \type {\parpasses} each
+step is separated by \type {next}. This makes it an extensible mechanism. Finally
+we will split the box according to this shape:
+
+\typebuffer[four]
+
+The result is shown here:
+
+\startlinecorrection
+    \small
+    \setuptolerance[tolerant,stretch]
+    \getbuffer[one,two,three,four]
+\stoplinecorrection
+
+Like the par builder we can end up with overfull boxes but we can deal with that
+by using trial runs.
+
+\starttyping
+\setbox\scratchboxtwo\vbalance\scratchboxone trial
+\stoptyping
+
+\startbuffer[one]
+\setbox\scratchboxone\vbox\bgroup
+    \hsize.30\hsize
+    \samplefile{knuthmath} \blank
+    \framed[height=4\lineheight]{test}
+    \samplefile{knuthmath} \blank
+\egroup
+\stopbuffer
+
+In that case the result is made from empty boxes so the original is not
+disturbed. Here we show an overflow, so in the first resulting box you
+can compare the height with the requested one and when it's larger you
+can decide to decrease the first height in the shape and try again.
+
+\startlinecorrection
+    \small
+    \setuptolerance[tolerant,stretch]
+    \getbuffer[one,two,three,four]
+\stoplinecorrection
+
+Of course that involves some juggling of the shape but after all we have \LUA\ at
+our disposal so in the end it's all quite doable.
+
+\startbuffer[three]
+\setbox\scratchboxtwo\vbalance\scratchboxone trial
+\stopbuffer
+
+\startbuffer[four]
+\global\globalscratchtoks\emptytoks
+\localcontrolledendless {%
+    \ifvoid\scratchboxtwo
+        \expandafter\quitloop
+    \else
+        \setbox\scratchbox\vbalancedbox\scratchboxtwo
+        \xtoksapp\globalscratchtoks {
+            \NC \the\currentloopiterator
+            \NC \the\ht\scratchbox
+            \NC \the\balanceshapevsize\currentloopiterator
+            \NC \NR
+        }
+    \fi
+}
+\stopbuffer
+
+\start
+    \small
+    \setuptolerance[tolerant,stretch]
+    \getbuffer[one,two,three,four]
+\stop
+
+\starttabulate[||||]
+\BC \BC real \BC target \NC \NR
+\the\globalscratchtoks
+\stoptabulate
+
+Because the balancer can produce what otherwise the page builder produces, we
+need to handle the equivalent of top skip which is what the already shown \type
+{top} keyword takes care of. This means that the current slice (think current
+line in the par builder) has to take that into account. This can be compared to the
+left- and right protrusion in the par builder. When we typeset on a grid we have an
+additional demand.
+
+When we surround (for instance a formula) with halfline spacing, we eventually
+have to return on the grid. One complication is that when we are in grid mode and
+use half line vertical spacing, we can end up in a situation where the initial
+half line space is on a previous page. That means that we need to use a larger
+top skip. This is not something that we want to burden the balancer with but we
+have ways to trick it into taking that compensation into account.
+
+\startlinecorrection
+\hpack \bgroup
+    \ruledvpack to 8\lineheight \bgroup \forgetall \raggedcenter \offinterlineskip \hsize 3cm
+        \blackrule[width=\hsize,  height=\strutht,  depth=\strutdp,  color=darkgray]\par
+        \blackrule[width=.2\hsize,height=\strutht,  depth=\strutdp,  color=darkred]\par
+        \blackrule[width=\hsize,  height=\strutht,  depth=\strutdp,  color=darkgray]\par
+        \blackrule[width=.6\hsize,height=\strutht,  depth=\strutdp,  color=middlegray]\par
+        \blackrule[width=\hsize,  height=\strutht,  depth=\strutdp,  color=darkgray]\par
+        \blackrule[width=.2\hsize,height=\strutht,  depth=\strutdp,  color=darkred]\par
+        \blackrule[width=\hsize,  height=\strutht,  depth=\strutdp,  color=darkgray]\par
+        \blackrule[width=.6\hsize,height=\strutht,  depth=\strutdp,  color=darkgray]
+        \vfill
+    \egroup
+    \quad
+    \ruledvpack to 8\lineheight \bgroup \forgetall \raggedcenter \offinterlineskip \hsize 3cm
+        \blackrule[width=\hsize,  height=\strutht,  depth=\strutdp,  color=darkgray]\par
+        \blackrule[width=.2\hsize,height=.5\strutht,depth=.5\strutdp,color=darkred]\par
+        \blackrule[width=\hsize,  height=\strutht,  depth=\strutdp,  color=darkgray]\par
+        \blackrule[width=.6\hsize,height=\strutht,  depth=\strutdp,  color=middlegray]\par
+        \blackrule[width=\hsize,  height=\strutht,  depth=\strutdp,  color=darkgray]\par
+        \blackrule[width=.2\hsize,height=.5\strutht,depth=.5\strutdp,color=darkred]\par
+        \blackrule[width=\hsize,  height=\strutht,  depth=\strutdp,  color=darkgray]\par
+        \blackrule[width=.6\hsize,height=\strutht,  depth=\strutdp,  color=darkgray]
+        \vfill
+    \egroup
+    \quad
+    \ruledvpack to 8\lineheight \bgroup \forgetall \raggedcenter \offinterlineskip \hsize 3cm
+        \blackrule[width=\hsize,  height=\strutht,  depth=\strutdp,  color=darkgray]\par
+        \blackrule[width=.6\hsize,height=\strutht,  depth=\strutdp,  color=middlegray]\par
+        \blackrule[width=\hsize,  height=\strutht,  depth=\strutdp,  color=darkgray]\par
+        \blackrule[width=.2\hsize,height=.5\strutht,depth=.5\strutdp,color=darkred]\par
+        \blackrule[width=\hsize,  height=\strutht,  depth=\strutdp,  color=darkgray]\par
+        \blackrule[width=.6\hsize,height=\strutht,  depth=\strutdp,  color=darkgray]
+        \vfill
+    \egroup
+    \quad
+    \ruledvpack to 8\lineheight \bgroup \forgetall \raggedcenter \offinterlineskip \hsize 3cm
+        \blackrule[width=.2\hsize,height=.5\strutht,depth=.5\strutdp,color=darkred]\par
+        \blackrule[width=\hsize,  height=\strutht,  depth=\strutdp,  color=darkgray]\par
+        \blackrule[width=.6\hsize,height=\strutht,  depth=\strutdp,  color=middlegray]\par
+        \blackrule[width=\hsize,  height=\strutht,  depth=\strutdp,  color=darkgray]\par
+        \blackrule[width=.2\hsize,height=.5\strutht,depth=.5\strutdp,color=darkred]\par
+        \blackrule[width=\hsize,  height=\strutht,  depth=\strutdp,  color=darkgray]\par
+        \blackrule[width=.6\hsize,height=\strutht,  depth=\strutdp,  color=darkgray]
+        \vfill
+    \egroup
+\egroup
+\stoplinecorrection
+
+However, when we split in the middle of that segment, we can end up with a half
+line skip in a next slot because \TEX\ will remove glue at the edge. So we end up
+with what we see in the third sequence above. We deal with that in a somewhat
+special way: a box as a discardable field which value will be taken into account
+as additional top value. That field is set and reset by glue options {\tt
+0x\tohexadecimal \cldcontext {tex . glueoptioncodes . setdiscardable}} and {\tt
+0x\tohexadecimal \cldcontext {tex . glueoptioncodes . resetdiscardable}} that can
+be manipulated in \LUA\ as part of some spacing model. Here we suffice by
+mentioning that it makes sure that (as in the fourth blob above) at the top we
+have a half line spacing.
+
+\stopsectionlevel
+
+\startsectionlevel[title=Forcing breaks]
+
+Because the initial application of balancing was in column sets, we also need the
+ability to goto a next slot (step in a shape), column (possibly more steps), page
+(depending on the page state), and spread (for instance if we are doubles ided).
+For this we use \type {\balanceboundary}. It takes two values and when the
+boundary node triggers a callback in the builder these are passed along with a
+shape identifier and current shape slot. That callback can then signal back that
+we need to try a break here with a given penalty. Assuming that at the \LUA\ end
+we know at which slot we have a slot, column, page or spread break. Multiple
+slots can be skipped by multiple boundaries. There is one pitfall: we need
+something in a slot in order to break at all, so one ends up with for instance:
+
+\starttyping
+\balanceboundary 3 1\relax
+\vskip\zeropoint
+\balanceboundary 3 0\relax
+\vskip\zeropoint
+\balanceboundary 3 0\relax
+\stoptyping
+
+Here the \type {3} is just some value that the callback can use to determine its
+action (like goto a next page) and the second value provides a detail. Of course
+all depends on the intended usage. By using a callback we can force breaks while
+not burdening the engine with some hard coded solution. For example, in \CONTEXT\
+we used these (the values are these from experiments and might change:
+
+\starttabulate[|c|c|||]
+\BC first \BC second \BC action                                    \BC user interface          \NC \NR
+\NC 1     \NC 1 or 0 \NC goto next spread (1 initial, 0 follow up) \NC \type {\page[spread]}   \NC \NR
+\NC 2     \NC 1 or 0 \NC goto next page (idem)                     \NC \type {\page}           \NC \NR
+\NC 3     \NC 1 or 0 \NC goto next column (idem)                   \NC \type {\column}         \NC \NR
+\NC 4     \NC 1 or 0 \NC goto next slot (idem)                     \NC \type {\column[slot]}   \NC \NR
+\NC 5     \NC n      \NC next slot when more than n lines          \NC \type {\testroom[5]}    \NC \NR
+\NC 6     \NC s      \NC next slot when more than s scaled points  \NC \type {\testroom[80pt]} \NC \NR
+\stoptabulate
+
+\stopsectionlevel
+
+\startsectionlevel[title=Marks]
+
+It is possible to synchronize the marks with those in the results of balanced
+segments with a few \LUA\ helpers that do the same as the page builder does at
+the start of a page, while packaging the page and when wrapping it up. So, instead
+of split marks we can have real marks.
+
+\stopsectionlevel
+
+\startsectionlevel[title=Inserts]
+
+Before we go into detail, we want to point out that when implementing a
+(balancing) mechanism as introduced above, decisions have to be made. In
+traditional \TEX\ there is for instance an approach to inserts that involves
+splitting them over pages. In our case that is a bit harder to do but there are
+ways to deal with it. When deciding on an approach it helps that we know a bit
+what situations occur and where we can put some constraints. One can argue that
+solutions should be very generic because (for instance) a publisher has some
+specific demands but in practice those are not our audience. In decades of
+developing \LUATEX\ and \LUAMETATEX\ it's (\CONTEXT) user demands and challenges
+that drives what gets implemented. Publishers, their suppliers, and large scale
+(commercial) users are pretty silent when it comes to development (and supporting
+it) while users communicate via meetings and mailing lists. Also, rendering of
+documents that have notes are often typeset kind of traditional.
+
+Users on the other hand have come up with demands for columns, typesetting on the
+grid, multiple notes, balancing, and parallel content streams. The picture we get
+from that makes us confident that what we provide is generally enough and as
+users understand the issues at hand (maybe as side effect of struggling with
+solutions) it's not that hard to explain why constraints are in place. It makes
+more sense to have a limited reliable mechanism that deals with the kind of
+(foot)notes that known users need than to cook up some complex mechanism that
+caters potential specific demands by potential users. Of course we have our own
+challenges to deal with, even if the resulting features will probably not be used
+that often. So here are the criteria that make sense:
+
+\startitemize[packed]
+\startitem We can assume a reasonable amount of notes. \stopitem
+\startitem These are normally small with no (vertical) whitespace. \stopitem
+\startitem Notes taking multiple lines may split. \stopitem
+\startitem But we need to obey widow and club penalties. \stopitem
+\startitem There can be math formulas but mostly inline. \stopitem
+\startitem We need to keep them close to where they are referred from. \stopitem
+\stopitemize
+
+But,
+
+\startitemize[packed]
+\startitem We can ignore complex conflicting demands. \stopitem
+\startitem As long as we get some result, we're fine. \stopitem
+\startitem So users have to check what comes out. \stopitem
+\startitem We don't assume fully automated unattended usage. \stopitem
+\stopitemize
+
+And of course:
+
+\startitemize[packed]
+\startitem Performance should be acceptable. \stopitem
+\startitem User interfaces should be intuitive. \stopitem
+\startitem Memory consumption should be reasonable. \stopitem
+\stopitemize
+
+We have users who use multiple note classes so that also has to be handled but
+again we don't need to come up with solutions that solve all possible demands. We
+can assume that when a book is published that needs them, the author will operate
+within the constraints.
+
+We mentioned footnotes being handled by the page builder so how about them in
+these balanced slots? Given the above remarks, we assume sane usage, so for
+instance columns that have a single slot with possibly fixed content at the top
+or bottom (and maybe as part of the stream). The balancer handles notes by taking
+their height into account and when a result is used one can request the embedded
+inserts and deal with them. Again this is very macro package dependent. Among the
+features dealt with are space above and between a set of notes, which means that
+we need to identify the first and successive notes in a class. Given how the
+routine works, this is a dynamic feature of a line: the amount of space needed
+depends on how many inserts are within a slot. When we did some extreme tests
+with several classes of notes and multiple per column we saw runtime increasing
+because instead of a few passes we got a few hundred. In an extreme case of 800
+passes to balance the result we noticed over four million checks for note related
+spacing. We could bring that down to one tenth so in the end we are still slower
+but less noticeable. Here are the helper primitives for inserts:
+
+\starttyping
+<state> = \boxinserts <box>
+<box>   = \vbalancedinsert <box> <class>
+<state> = \boxinserts <box>
+\stoptyping
+
+A (foot)note implementation is very macro package dependent so the next example
+is just that: an example of using the available primitive. We start by populating
+a mvl with a sample text and a single footnote.
+
+\startbuffer[populate]
+\begingroup
+    \forgetall
+    \beginmvl
+        index 5
+        options \numexpr
+            \ignoreprevdepthmvloptioncode
+          + \discardtopmvloptioncode
+        \relax
+    \relax
+        \hsize .4tw
+        Line 1 \par Line 2 \footnote {Note 1} \par Line 3 \par
+        Line 4 \footnote {Note 2} \par Line 5 \par Line 6 \par
+    \endmvl
+\endgroup
+\stopbuffer
+
+\typebuffer[populate]
+
+We fetch the footnote number, which is one of many possible defined
+inserts
+
+\startbuffer[whatever]
+\cdef\currentnote{footnote}%
+\scratchcounter\currentnoteinsertionnumber
+\stopbuffer
+
+\typebuffer[whatever]
+
+The quick and dirty balancer uses a simple shape of 5 lines with normal strut
+properties. From the balanced result we take two columns. We test if there is an
+insert and take action when there is. Here we just filter the footnotes but there
+can of course be more. We overlay these notes over (under) the column that has
+them. So we work per column.
+
+\startbuffer[balance]
+\begingroup
+    \setbox\scratchboxone\flushmvl 5
+    \balanceshape 1
+        vsize      5lh
+        topskip    1sh
+        bottomskip 1sd
+    \relax
+    \setbox\scratchboxtwo\vbalance\scratchboxone
+    \ruledhbox \bgroup
+        \localcontrolledrepeat 2 {
+          \ifnum\currentloopiterator > 1
+            \hskip2\emwidth
+          \fi
+          \setbox\scratchboxthree\vbalancedbox\scratchboxtwo \relax
+          \ifnum\boxinserts\scratchboxthree > 3
+            \setbox\scratchboxfour\vbalancedinsert
+                \scratchboxthree\scratchcounter
+            \wd\scratchboxfour 0pt
+            \box\scratchboxfour
+          \fi
+          \box\scratchboxthree
+        }\unskip
+    \egroup
+\endgroup
+\stopbuffer
+
+\typebuffer[balance]
+
+The result is:
+
+\start
+    \getbuffer[populate] % outside next vbox
+    \startlinecorrection
+        \getbuffer[whatever]
+        \automigrationmode 0
+        \getbuffer[balance]
+    \stoplinecorrection
+\stop
+
+As we progressed we realized that the \quote {balancer} used in column sets can
+also be used for single columns and we can even support a mix of single and multi
+columns. There is however a problem: within a mvl we can deal with spacing but we
+can't do that reliable across mvl's and especially when we cross a page it
+becomes hard to identify if some (vertical) spacing is needed; we don't want it
+at the bottom or top of a page. This feature is too experimental to be discussed
+right now.
+
+We assumed reasonable notes to be used but even if a user tries to keep notes
+small and avoid too many, there are cases where they might look like a paragraph
+and when there are more in a row, it might be that a column overflows. This is
+why we have some support for split notes. This is accomplished by two additional
+commands:
+
+\starttyping
+\setbox\scratchboxone\vbalance\scratchboxone\relax
+\vbalanceddeinsert\scratchboxone\relax
+\stoptyping
+
+Here we convert inserts in such a way that they are taken into account by the
+balancer so that multi|-|slot optimization takes place. Afterwards, when we loop
+over the result we can reconstruct the inserts:
+
+\starttyping
+\setbox\scratchboxtwo\vbalancedbox\scratchboxone
+\vbalancedreinsert\scratchboxtwo\relax
+\stoptyping
+
+Among the reasons that these are explicit actions, is that we want to experiment
+but also be able to see the effect by selectively enabling it. You can get better
+results by forcing depth correction.
+
+\starttyping
+\setbox\scratchboxone\vbalance\scratchboxone
+\vbalanceddeinsert\scratchboxone forcedepth\relax
+\stoptyping
+
+This will use the depth as defined by \type {\insertlinedepth} which is an insert
+class specific parameter, but discussing details of inserts is not what we do
+here. The reason for using a \type {\relax} in the above examples is that we want
+to stress that when keywords are involved, you need to prevent look|-|ahead,
+especially when an \type {\if...} or expandable loop follows, which is not
+uncommon when we balance.
+
+It is possible to define top and bottom inserts but of course these need to be
+filtered and placed at the \TEX\ end, so this is macro package specific. Here we
+just mention that it is possible to set \type {\insertstretch} and \type
+{\insertshrink} which will be taken into account. However, this can result in
+overlap so if indeed stretch or shrink is applied, the \type {handle_uinsert}
+callback should be used for bringing what actually gets inserted to the right
+dimensions. For now we consider this an experimental feature.
+
+\stopsectionlevel
+
+\startsectionlevel[title=Discardables]
+
+This is a preliminary explanation.
+
+\startbuffer[populate]
+\begingroup
+    \beginmvl
+        index 5
+        options \numexpr
+            \ignoreprevdepthmvloptioncode
+          + \discardtopmvloptioncode
+        \relax
+    \relax
+        \hsize .4tw
+        \par
+        \vskip0pt
+        {\darkred \hrule discardable height 1sh depth 1sd width 1em}
+        \par
+        % we need the strut because the rule obscures it .. todo
+        \dorecurse{8}{\strut Line #1 \par}
+        \vskip\zeropoint
+        {\darkblue \hrule discardable height 1sh depth 1sd width 1em}
+        \par
+    \endmvl
+\endgroup
+\stopbuffer
+
+\typebuffer[populate]
+
+\startbuffer[balance]
+\setbox\scratchboxone\flushmvl 5
+\balanceshape 1
+    vsize       5lh
+    topskip     1sh % see comment above
+    bottomskip  1sd
+    options     3
+\relax
+\setbox\scratchboxtwo\vbalance\scratchboxone\relax % lookhead
+\stopbuffer
+
+\startbuffer[flush]
+\hpack \bgroup
+    \localcontrolledrepeat 3 {
+        \ifvoid\scratchboxtwo\else
+            \setbox\scratchboxthree\vbalancedbox\scratchboxtwo
+            \ifvoid\scratchboxthree\else
+                \dontleavehmode\llap{[\the\currentloopiterator]\quad}%
+                \ruledhpack{\box\scratchboxthree}\par
+            \fi
+            \hskip 4em
+        \fi
+    }\unskip
+\egroup
+\stopbuffer
+
+\typebuffer[balance,flush]
+
+\start
+    \forgetall
+    \getbuffer[populate] % outside next vbox
+    \blank[2*line]
+    \startlinecorrection
+        \getbuffer[balance]
+        \getbuffer[flush]
+    \stoplinecorrection
+%     \blank[2*line]
+\stop
+
+When at the top, the rule will be ignored and basically sticks out. When at the
+bottom the rule might end up in a zero dimension box. With \typ
+{\vbalanceddiscard \scratchboxtwo} they will become an \type {\nohrule}.
+Basically we're talking of optional content. The \type {options} bitset in the
+shape definition tells if we have a top (1) and|/| or bottom (2), here we have
+both (3) but in for instance column sets it depends.
+
+\start
+    \forgetall
+    \showmakeup[vglue]
+    \getbuffer[populate] % outside next vbox
+    \showmakeup[reset]
+    \blank
+    \startlinecorrection
+    \showmakeup[vglue]
+        \getbuffer[balance]
+        \vbalanceddiscard\scratchboxtwo
+        \getbuffer[flush]
+    \stoplinecorrection
+%     \blank[2*line]
+\stop
+
+Here we actually still have the rule but marked as invisible. So, topskip has a
+negative amount. In the next case the \type {remove} keyword makes the rule go
+away in which case we also adapt the topskip accordingly.
+
+\start
+    \forgetall
+    \showmakeup[vglue]
+    \getbuffer[populate] % outside next vbox
+    \showmakeup[reset]
+    \blank
+    \startlinecorrection
+        \getbuffer[balance]
+        \vbalanceddiscard \scratchboxtwo remove\relax
+        \getbuffer[flush]
+    \stoplinecorrection
+%     \blank[2*line]
+\stop
+
+You need to juggle a bit with skips and penalties to get this working as you
+like. Instead of rules you can also use boxes, for example before:
+
+\starttyping
+\vskip\zeropoint
+\ruledvbox discardable {\hpack{\strut BEFORE}}
+\par
+\stoptyping
+
+and after:
+
+\starttyping
+\forgetall \par \vskip\zeropoint
+\ruledvbox discardable {\hpack{\strut AFTER}}%
+\penalty\minusone % !
+\par
+\stoptyping
+
+It currently is a playground so it might (and probably will) evolve. Although it
+was also made for a specific issue it might have other usage.
+
+\stopsectionlevel
+
+\startsectionlevel[title=Passes]
+
+{\em todo}
+
+\starttyping
+\showmakeup[vpenalty,line]
+\balancefinalpenalties 6 10000 9000 8000 7000 6000 5000\relax
+\balancevsize 5\lineheight
+\setbox\scratchbox\vbox{\dorecurse{1}{\samplefile{tufte}\footnote{!}\par}}
+\vbalance\scratchbox
+\stoptyping
+
+\stopsectionlevel
+
+\startsectionlevel[title=Passes]
+
+In \LUAMETATEX\ the par builder has been extended with additional features (like
+orphan, toddler and twin control) and the ability to define and apply multiple
+passes over the paragraph to get the best result. The balancer has a similar
+feature: \type {\balancepasses}. As with \type {\parpasses} we have an
+infrastructure for tracing.
+
+\starttyping
+% threshold
+% tolerance
+% looseness
+% adjdemerits
+% originalstretch
+% emergencystretch
+% emergencyfactor
+% emergencypercentage
+\stoptyping
+
+\stopsectionlevel
+
+% tests/mkiv/typesetting/balancing-001.tex
+
+\stopdocument
+
+% (Re)written mixed with watching Talk Talk in Montreux DVD and energetic The
+% Warning live concerts on YT, just to get a positive constructive vibe. As with
+% the mechanisms discussed here, it's all about cooperation and subtle (and honest)
+% quality. It's often music that drives this development.


Property changes on: trunk/Master/texmf-dist/doc/context/sources/general/manuals/lowlevel/lowlevel-balancing.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/context/sources/general/manuals/lowlevel/lowlevel-characters.tex
===================================================================
--- trunk/Master/texmf-dist/doc/context/sources/general/manuals/lowlevel/lowlevel-characters.tex	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/sources/general/manuals/lowlevel/lowlevel-characters.tex	2025-02-19 22:48:50 UTC (rev 74156)
@@ -222,6 +222,30 @@
 
 \stopsectionlevel
 
+\startsectionlevel[title={spaces}]
+
+The engine has no real concept of a space. When the input has one it is turned
+into a glue, likely with some stretch and shrink. When \typ {\nospaces} is set to
+one, no glue will be inserted. A value of two will inject a zero width glue. When
+set to three a glyph will be inserted with the character code set by \typ
+{\spacechar}.
+
+\startbuffer
+\nospaces\plusthree
+\spacechar\underscoreasciicode
+\hccode\underscoreasciicode\underscoreasciicode
+Where are the spaces?
+\stopbuffer
+
+\typebuffer
+
+The \type {hccode} tells the machinery that the underscore is a valid word
+separator (think compound words).
+
+\getbuffer
+
+\stopsectionlevel
+
 \stopdocument
 
 % on an old machine, so consider them just relative measures

Modified: trunk/Master/texmf-dist/doc/context/sources/general/manuals/lowlevel/lowlevel-conditionals.tex
===================================================================
--- trunk/Master/texmf-dist/doc/context/sources/general/manuals/lowlevel/lowlevel-conditionals.tex	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/sources/general/manuals/lowlevel/lowlevel-conditionals.tex	2025-02-19 22:48:50 UTC (rev 74156)
@@ -12,6 +12,73 @@
 
 \startsectionlevel[title=Introduction]
 
+% {\em There are more conditionals then discussed here but in due time these will
+% also be explained.}
+%
+% + \if
+% + \ifabsdim
+% + \ifabsfloat
+% + \ifabsnum
+% + \ifarguments
+% + \ifboolean
+% + \ifcase
+% + \ifcat
+% + \ifchkdim
+% + \ifchkdimension
+% + \ifchkdimexpr
+% + \ifchknum
+% + \ifchknumber
+% + \ifchknumexpr
+% + \ifcmpdim
+% + \ifcmpnum
+% + \ifcondition
+% + \ifcramped
+% + \ifcsname
+% + \ifcstok
+% + \ifdefined
+% + \ifdim
+% + \ifdimexpression
+% + \ifdimval
+% + \ifempty
+% + \iffalse
+% + \ifflags
+% + \iffloat
+% + \iffontchar
+% + \ifhaschar
+% + \ifhastok
+% + \ifhastoks
+% + \ifhasxtoks
+% + \ifhbox
+% + \ifhmode
+% + \ifinalignment
+% + \ifincsname
+% + \ifinner
+% + \ifinsert
+% + \ifintervaldim
+% + \ifintervalfloat
+% + \ifintervalnum
+% + \iflastnamedcs
+% + \iflist
+% + \ifmathparameter
+% + \ifmathstyle
+% + \ifmmode
+% + \ifnum
+% + \ifnumexpression
+% + \ifnumval
+% + \ifodd
+% + \ifparameter
+% + \ifparameters
+% + \ifrelax
+% + \iftok
+% + \iftrue
+% + \ifvbox
+% + \ifvmode
+% + \ifvoid
+% + \ifx
+% + \ifzerodim
+% + \ifzerofloat
+% + \ifzeronum
+
 You seldom need the low level conditionals because there are quite some so called
 support macros available in \CONTEXT . For instance, when you want to compare two
 values (or more accurate: sequences of tokens), you can do this:
@@ -50,9 +117,6 @@
 probably make most sense are \type {\ifnum}, \type {\ifdim} and \type {\ifcase}.
 The others are often wrapped into support macros that are more convenient.
 
-In due time I might add more examples and explanations. Also, maybe some more
-tests will show up as part of the \LUAMETATEX\ project.
-
 \stopsectionlevel
 
 \startsectionlevel[title={Number and dimensions}]
@@ -595,7 +659,7 @@
 
 \typebuffer[option=TEX]
 
-Setting a dimension of a void voix (empty) box doesn't make it less void:
+Setting a dimension of a void (empty) box doesn't make it less void:
 
 \startlines
 \getbuffer
@@ -847,6 +911,31 @@
 \fi
 \stoptyping
 
+An \type {\unless} makes little sense when used with \type {\ifcase} but contrary
+to the other engines we don't error or it; we just give a warning. Some
+conditionals internally use a case so there we can actually provide a variant:
+
+\startbuffer
+\ifcase 1 \relax zero \or one \or two \else else \fi = one \par
+\ifcase 2 \relax zero \or one \or two \else else \fi = two \par
+
+\unless\ifcase 1 \relax zero \or one \or two \else else \fi % warning
+\unless\ifcase 2 \relax zero \or one \or two \else else \fi % warning
+
+\ifchkdim1pt\or yes \else nop \fi = yes \par
+\ifchkdim2  \or nop \else yes \fi = yes \par
+
+\unless\ifchkdim1pt\or nop \else yes \fi = yes \par
+\unless\ifchkdim2  \or yes \else nop \fi = yes \par
+\stopbuffer
+
+\typebuffer[option=TEX]
+
+The \typ {\ifchkdim}, \typ {\ifchkdimension}, \typ {\ifchknum}, \typ
+{\ifchknumber} and \typ {\ifparameter} are supported.
+
+\startpacked \getbuffer \stoppacked
+
 \stopsectionlevel
 
 \stopsectionlevel
@@ -863,7 +952,8 @@
 \startsectionlevel[title={\tex{ifprimitive}}]
 
 As it had no real practical usage due to limitations, this one is not available
-in \LUAMETATEX\ so it will not be discussed here.
+in \LUAMETATEX\ so it will not be discussed here. If really needed you can use \type
+{\ifflags}.
 
 \stopsectionlevel
 
@@ -1067,6 +1157,105 @@
 
 \startsectionlevel[title={\LUAMETATEX\ primitives}]
 
+\startsectionlevel[title={\tex{ifnum} and \type {ifdim}}]
+
+These have been extended with a few more operators. For instance, we can use a
+negation:
+
+\startbuffer
+\ifnum 10  > 5 Y\else N\fi
+\ifnum 10 !> 5 Y\else N\fi
+\stopbuffer
+
+\typebuffer[option=TEX]
+
+Results in: \inlinebuffer. A bitwise comparison is possible too:
+
+\startbuffer
+\ifnum "02  & 2 Y\else N\fi
+\ifnum "02  & 4 Y\else N\fi
+\ifnum "02 !& 8 Y\else N\fi
+\stopbuffer
+
+\typebuffer[option=TEX]
+
+yields: \inlinebuffer. You can also use the \UNICODE\ variants \type {∈}, \type
+{∉}, \type {≠}, \type {≤}, \type {≥}, \type {≰}, and \type {≱}.
+
+\stopsectionlevel
+
+\startsectionlevel[title={\tex{iffloat}}]
+
+This is a test for a float, much like a test for a dimen without unit.
+
+\stopsectionlevel
+
+\startsectionlevel[title={\tex{ifabsfloat}}]
+
+This is a test for a float, much like a test for a dimen without unit.
+
+\stopsectionlevel
+
+\startsectionlevel[title={\tex{ifintervalnum}}]
+
+This is a test for equality of two numbers within an interval, as in:
+
+\startbuffer
+\ifintervalnum   1   2 1 Y\else N\fi
+\ifintervalnum   1   3 1 Y\else N\fi
+\ifintervalnum 100 102 1 Y\else N\fi
+\ifintervalnum 100 102 3 Y\else N\fi
+\stopbuffer
+
+\typebuffer[option=TEX]
+
+which results in: \inlinebuffer.
+
+\stopsectionlevel
+
+\startsectionlevel[title={\tex{ifintervaldim}}]
+
+This is a test for equality of two dimensions within an interval, as in:
+
+\startbuffer
+\ifintervaldim   1pt   2pt 1pt Y\else N\fi
+\ifintervaldim   1pt   3pt 1pt Y\else N\fi
+\ifintervaldim 100pt 102pt 1pt Y\else N\fi
+\ifintervaldim 100pt 102pt 3pt Y\else N\fi
+\stopbuffer
+
+\typebuffer[option=TEX]
+
+We get: \inlinebuffer.
+
+\stopsectionlevel
+
+\startsectionlevel[title={\tex{ifintervalfloat}}]
+
+This is a test for a float, much like a test for a dimen without unit.
+
+\stopsectionlevel
+
+\startsectionlevel[title={\tex{ifdimexpression}}]
+
+This is a boolean checker so the comparison is done as part of the expression, as in:
+
+\starttyping[option=TEX]
+\ifdimexpression{10pt > (4pt + 8pt)}Y\else N\fi
+\stoptyping
+
+\stopsectionlevel
+
+\startsectionlevel[title={\tex{ifnumexpression}}]
+
+This is a boolean checker so the comparison is done as part fo the expression, as in:
+
+\starttyping[option=TEX]
+\ifnumexpression{10 > (4 + 8)}Y\else N\fi
+\stoptyping
+
+\stopsectionlevel
+
 \startsectionlevel[title={\tex{ifcmpnum}}]
 
 This one is part of s set of three tests that all are a variant of a \type
@@ -1097,8 +1286,31 @@
 with the \type {\ifcase}: because the result is 1 or 2, we never see invalid
 tokens.
 
+In order to avoid another scan the a valid result it is made available in \type
+{\lastchknumber}.
+
 \stopsectionlevel
 
+\startsectionlevel[title={\tex{ifchknumber}}]
+
+This one is a more rigorous variant of \type {\ifchknum} and doesn't like
+trailing non numeric crap.
+
+\stopsectionlevel
+
+\startsectionlevel[title={\tex{ifchknumexpr}}]
+
+This test goes a bit further and accepts an expression.
+
+\starttyping[option=TEX]
+\ifchknumexpr 123 + 45\or good \else bad \fi
+\stoptyping
+
+As with the other checkers, if there is a valid result it is available in \type
+{\lastchknumber}.
+
+\stopsectionlevel
+
 \startsectionlevel[title={\tex{ifnumval}}]
 
 A sort of combination of the previous two is \type {\ifnumval} which checks a
@@ -1124,10 +1336,24 @@
 \startsectionlevel[title={\tex{ifchkdim}}]
 
 This test is like \type {\ifchknum} but for dimensions. The last checked value is
-available as \type {\lastchknum}.
+available as \type {\lastchknumber}.
 
 \stopsectionlevel
 
+\startsectionlevel[title={\tex{ifchkdimension}}]
+
+This one is a more rigorous variant of \type {\ifchkdim} and doesn't like
+trailing rubish.
+
+\stopsectionlevel
+
+\startsectionlevel[title={\tex{ifchkdimexpr}}]
+
+This test is like \type {\ifchknumexpr} but for dimensions. The last checked value is
+available as \type {\lastchkdimension}.
+
+\stopsectionlevel
+
 \startsectionlevel[title={\tex{ifdimval}}]
 
 This test is like \type {\ifnumval} but for dimensions. The last checked value is
@@ -1197,9 +1423,63 @@
 
 \stopsectionlevel
 
+\startsectionlevel[title={\tex{ifzeronum}, \tex{ifzerodim}, \tex{ifzerofloat}}]
+
+The names of these three tells what they do: checking for a zero value.
+
+\startbuffer
+(\ifzerodim   10pt\norelax A\orelse\ifzerodim   0pt\norelax B\else C\fi)
+(\ifzeronum   10  \norelax A\orelse\ifzeronum   0  \norelax B\else C\fi)
+(\ifzerofloat 10.0\norelax A\orelse\ifzerofloat 0.0\norelax B\else C\fi)
+\stopbuffer
+
+\typebuffer[option=TEX]
+
+Here we use the \type {\norelax} to get rid of trailing spaces: \inlinebuffer.
+
+\stopsectionlevel
+
+\startsectionlevel[title={\tex{ifhaschar}, \tex{ifhastok}, \tex{ifhastoks},\tex{ifhasxtoks}}]
+
+These checkers can be used to identify a (sequence) of token(s) in a given token
+list. Their working can best be shown with a few examples:
+
+\startbuffer
+\ifhaschar   c {abcd}Y\else N\fi
+\ifhastok    c {abcd}Y\else N\fi
+\ifhastoks  {c}{abcd}Y\else N\fi
+\ifhasxtoks {c}{abcd}Y\else N\fi
+
+\def\abcd{abcd}
+
+\ifhaschar   c {\abcd}Y\else N\fi
+\ifhastok    c {\abcd}Y\else N\fi
+\ifhastoks  {c}{\abcd}Y\else N\fi
+\ifhasxtoks {c}{\abcd}Y\else N\fi
+
+\ifhaschar   c {a{bc}d}Y\else N\fi
+\ifhastok    c {a{bc}d}Y\else N\fi
+\ifhastoks  {c}{a{bc}d}Y\else N\fi
+\ifhasxtoks {c}{a{bc}d}Y\else N\fi
+
+\def\abcd{a{bc}d}
+
+\ifhaschar   c {\abcd}Y\else N\fi
+\ifhastok    c {\abcd}Y\else N\fi
+\ifhastoks  {c}{\abcd}Y\else N\fi
+\ifhasxtoks {c}{\abcd}Y\else N\fi
+\stopbuffer
+
+\typebuffer[option=TEX] \getbuffer
+
+The \type {\ifhaschar} test will not descend into a braced sublist. The \type {x}
+variants expand the list before comparison.
+
+\stopsectionlevel
+
 \startsectionlevel[title={\tex{ifcstok}}]
 
-There is a subtle difference between this one and \type {iftok}: spaces
+There is a subtle difference between this one and \type {\iftok}: spaces
 and \type {\relax} tokens are skipped but nothing gets expanded. So, when
 we arrive at the to be compared \quote {things} we look at what is there,
 as|-|is.
@@ -1221,13 +1501,6 @@
 
 \stopsectionlevel
 
-\startsectionlevel[title={\tex{ifusercmd}}]
-
-{\em This is an experimental test.} It can be used to see if the command is
-defined at the user level or is a build in one. This one might evolve.
-
-\stopsectionlevel
-
 \startsectionlevel[title={\tex{ifarguments}}]
 
 This conditional can be used to check how many arguments were matched. It only
@@ -1237,6 +1510,320 @@
 
 \stopsectionlevel
 
+\startsectionlevel[title={\tex{ifrelax}}]
+
+\startbuffer
+            \ifrelax\relax                  Y\else N\fi
+            \ifrelax\norelax                Y\else N\fi
+\expandafter\ifrelax\csname ReLaX\endcsname Y\else N\fi
+\stopbuffer
+
+The following tests all return the same: \inlinebuffer; it is a shortcut for
+\type {\ifx ... \relax} that looks nicer in code.
+
+\typebuffer[option=TEX]
+
+\stopsectionlevel
+
+\startsectionlevel[title={\tex{ifempty}}]
+
+\startbuffer
+\ifempty{}     Y\else N\fi
+\ifempty{!}    Y\else N\fi
+\ifempty\empty Y\else N\fi
+\stopbuffer
+
+This is again a shortcut, this time for \type {\ifx ...\empty} assuming that
+\type {\empty} is defined as being nothing. Instead of a token you can also pass
+a list, so here we get \inlinebuffer.
+
+\typebuffer[option=TEX]
+
+\stopsectionlevel
+
+\startsectionlevel[title={\tex{iflastnamedcs}}]
+
+This test is part of the \type {\csname} repertoire and uses the last valid
+result from such a command.
+
+\startbuffer
+\def\Hello{upper}
+\def\hello{lower}
+\ifcsname Hello\endcsname
+    \iflastnamedcs\hello
+      world
+    \orelse\iflastnamedcs\Hello
+      World
+    \fi
+\fi
+\stopbuffer
+
+\typebuffer[option=TEX]
+
+Here the \quote {Hello} test result in \quote {\nospacing\inlinebuffer}. It is an
+example of a follow up test, most likely used in user interfacing.
+
+\stopsectionlevel
+
+\startsectionlevel[title={\tex{ifboolean}}]
+
+Another new one is the following: it tests a number for being zero or not. As
+with any primitive that scans for a number, it accepts a braced expression too.
+
+\startbuffer
+(\ifboolean 0 T\else F\fi)
+(\ifboolean 1 T\else F\fi)
+(\ifboolean {(2 * 4) < 5} T\else F\fi)
+(\ifboolean \dimexpression{(1em > 20pt) or  (1ex > 15pt)} T\else F\fi)
+(\ifboolean \dimexpression{(1em > 3pt)  and (1ex <  3pt)} T\else F\fi)
+\stopbuffer
+
+\typebuffer[option=TEX]
+
+We get: \inlinebuffer.
+
+\stopsectionlevel
+
+\startsectionlevel[title={\tex{iflist}}]
+
+The \type {\ifvoid} test doesn't really test for a box being empty, which is
+why we have an additional primitive. Compare the following:
+
+\startbuffer
+\setbox0\hbox{}
+\setbox2\hbox{!}
+\setbox4\emptybox % \box\voidbox
+\setbox8\box6
+
+\wd0 10pt \wd2 10pt \wd4 10pt \wd6 10pt
+
+[\ifvoid0 Y\else N\fi \iflist0 Y\else N\fi \the\wd0] % empty  hbox
+[\ifvoid2 Y\else N\fi \iflist2 Y\else N\fi \the\wd2] % hbox with content
+[\ifvoid4 Y\else N\fi \iflist4 Y\else N\fi \the\wd4] % no box
+[\ifvoid6 Y\else N\fi \iflist6 Y\else N\fi \the\wd6] % no box
+\stopbuffer
+
+\typebuffer[option=TEX]
+
+The result demonstrates that we check if there is any content at all, independent
+of dimensions or the presence of a wrapping list node.
+
+\startlines
+\getbuffer
+\stoplines
+
+\stopsectionlevel
+
+\startsectionlevel[title={\tex{ifcramped}}]
+
+This test relates to math and in particular to four of the eight states:
+
+\startbuffer
+\im {
+    \sqrt
+        {\ifcramped\mathstyle y\else n\fi}
+      ^ {\ifcramped\mathstyle y\else n\fi}
+      _ {\ifcramped\mathstyle y\else n\fi}
+}
+\stopbuffer
+
+\typebuffer[option=TEX]
+
+Because a math formula is first read and then processed in several passes you
+need to be aware of this state not always being easily predictable because there
+can be a delay between that read and successive treatments.
+
+\startlinecorrection
+\scale[s=2]{\showglyphs\getbuffer}
+\stoplinecorrection
+
+\stopsectionlevel
+
+\startsectionlevel[title={\tex{ifmathparameter}}]
+
+The next example demonstrates what this test provides:
+
+\startbuffer
+[\ifmathparameter\Umathextrasubspace   \displaystyle zero\or set\else unset\fi]
+[\ifmathparameter\Umathaccentbaseheight\displaystyle zero\or set\else unset\fi]
+[\ifmathparameter\Umathaccentbasedepth \displaystyle zero\or set\else unset\fi]
+\stopbuffer
+
+\typebuffer[option=TEX]
+
+There are three possible outcomes; here we get: \inlinebuffer. In \LUAMETATEX\ we
+have more math parameters than in \LUATEX, and some are set in font specific so
+called \quote {goodie} files.
+
+\stopsectionlevel
+
+\startsectionlevel[title={\tex{ifmathstyle}}]
+
+Here you need to keep in mind that you test the style that is set when \TEX\ scans for
+formula. Processing happens afterwards and then styles can change.
+
+\startbuffer
+   {\ifmathstyle D\or D'\or T\or T'\or S\or S'\or SS\or SS'\else ?\fi}
+\im{\ifmathstyle D\or D'\or T\or T'\or S\or S'\or SS\or SS'\else ?\fi}
+\dm{\ifmathstyle D\or D'\or T\or T'\or S\or S'\or SS\or SS'\else ?\fi}
+\stopbuffer
+
+\typebuffer[option=TEX]
+
+We get: \inlinebuffer. The odd values are cramped.
+
+
+\stopsectionlevel
+
+\startsectionlevel[title={\tex{ifinalignment}}]
+
+This test is an experimental one:
+
+\startbuffer
+\halign \bgroup
+    \aligncontent
+    \aligntab
+    \aligncontent
+    \cr
+    one \aligntab \ifinalignment two\else three\fi \cr
+    \noalign{\ifinalignment yes\else no\fi}
+    one \aligntab \hbox{\ifinalignment two\else three\fi} \cr
+\egroup
+
+\hbox{\ifinalignment two\else three\fi}
+\stopbuffer
+
+\typebuffer[option=TEX]
+
+We get:
+
+\startpacked\getbuffer \stoppacked
+
+\stopsectionlevel
+
+\startsectionlevel[title={\tex{ifinsert}}]
+
+This primitive checks if an insert box has content. Usage depends on the macro
+package so for instance in \CONTEXT, after \type {\footnote {A note.}} you can
+actually check it with:
+
+\starttyping[option=TEX]
+\setupheadertexts[\ifinsert\namedinsertionnumber{footnote} Y\else N\fi]
+\stoptyping
+
+You pass the number of a insert class and in this example the content, set by the
+page builder, hasn't yet been flushed.
+
+\stopsectionlevel
+
+\startsectionlevel[title={\tex{ifflags}}]
+
+This one related to interfacing. When a macro is defined, one can apply several
+prefixes to that macro. Some of these prefixes result in a specific kind of
+macro, for instance a protected, tolerant, tolerant protected, or regular macro.
+When a macro is defined global, its (internal) level value indicates that. In
+addition macros, or actually any control sequence, also the built-in ones, can
+have a set of flags. Some, have consequences in the engine, so for instance an
+untraced macro will present itself as a primitive, without details that clutter a
+log. Other flags get meaning when the overload protection mechanisms are enabled.
+
+Testing flags can give some insight but in \CONTEXT\ there is little reason to
+use this test other than for illustrative purposes. Take this definition
+
+\startbuffer
+\global\protected\def\Foo{Foo}
+\stopbuffer
+
+\typebuffer[option=TEX]
+
+This macro is internally represented as follows; here we used \type
+{\meaningasis}:
+
+\start
+\getbuffer \tt \meaningasis\Foo
+\stop
+
+When we use \type {\meaning} we get:
+
+\start
+\getbuffer \tt \meaning\Foo
+\stop
+
+With \type {\meaningfull} we get:
+
+\start
+\getbuffer \tt \meaningfull\Foo
+\stop
+
+Here is how you can test what properties and flags are set.
+
+\startbuffer[test]
+\ifflags\Foo\global    global    \fi
+\ifflags\Foo\protected protected \fi
+\ifflags\Foo\tolerant  tolerant  \fi
+\stopbuffer
+
+\typebuffer[test][option=TEX]
+
+We only show a few tests here:
+
+\start \getbuffer \tt \getbuffer[test] \stop
+
+Instead of a prefix you can also pass a number:
+
+\startbuffer[test]
+\ifflags\relax\primitiveflagcode primitive \fi
+\ifflags\relax\permanentflagcode permanent \fi
+\stopbuffer
+
+\typebuffer[test][option=TEX]
+
+\start \tt \getbuffer[test] \stop
+
+In \CONTEXT\ many macros are defined as permanent which in terms of overload
+protection has the same impact. Relevant flag values are available in \typ
+{tex.getflagvalues()} but in \CONTEXT\ we prefer predefined constants:
+
+\startalign[flushleft]
+\startluacode
+local done = false
+for k, v in table.sortedhash(tex.flagcodes) do
+    if type(k) == "string" then
+        if done then
+            context(", ")
+        else
+            done = true
+        end
+        context.tex(k .. "flagcode")
+    end
+end
+\stopluacode
+\stopalign
+
+\stopsectionlevel
+
+\startsectionlevel[title={\tex{ifparameters}}]
+
+This is an \type {\ifcase} where the number is the number of parameters passed to
+the current macro. Of course, when used in a macro one should be aware of the
+fact that another macro call will change this number.
+
+\stopsectionlevel
+
+\startsectionlevel[title={\tex{ifparameter}}]
+
+This test checks if a parameter has been set, and it's used as follows:
+
+\starttyping
+\ifparameter#4\or set\else unset\fi
+\stoptyping
+
+because \type {#4} is actually a reference it refers to the parameter in the
+current macro and is not influences by nested macro calls which makes if more
+reliable than a \type {\ifparameters} test.
+
+\stopsectionlevel
+
 \startsectionlevel[title={\tex{orelse}}]
 
 This it not really a test primitive but it does act that way. Say that we have this:
@@ -1299,8 +1886,14 @@
 
 \stopsectionlevel
 
+\startsectionlevel[title={\tex{orunless}}]
+
+This is the negated variant of \type {\orelse}.
+
 \stopsectionlevel
 
+\stopsectionlevel
+
 \startsectionlevel[title={For the brave}]
 
 \startsectionlevel[title={Full expansion}]
@@ -1431,7 +2024,7 @@
 \newdimen\MyDimenB \MyDimenB=2pt  \dimen2=\MyDimenB
 \stopbuffer
 
-\typebuffer \getbuffer
+\typebuffer[option=TEX] \getbuffer
 
 I will use these to illustrate the side effects of scanning. Watch the spaces
 in the result.
@@ -1462,42 +2055,42 @@
 (digits) the zero will become part of it so we actually check \type {\dimen00}
 here.
 
-\startbuffer[c]
+\startbuffer[c][option=TEX]
 \def\whatever#1#2%
   {\ifdim#1=#20\else1\fi}
 \stopbuffer
 
-\typebuffer[c] \getbuffer[c,b]
+\typebuffer[c][option=TEX] \getbuffer[c,b]
 
 The solution is to add a space but watch how that one can end up in the result:
 
-\startbuffer[c]
+\startbuffer[c][option=TEX]
 \def\whatever#1#2%
   {\ifdim#1=#2 0\else1\fi}
 \stopbuffer
 
-\typebuffer[c] \getbuffer[c,b]
+\typebuffer[c][option=TEX] \getbuffer[c,b]
 
 A variant is using \type {\relax} and this time we get this token retained in
 the output.
 
-\startbuffer[c]
+\startbuffer[c][option=TEX]
 \def\whatever#1#2%
   {\ifdim#1=#2\relax0\else1\fi}
 \stopbuffer
 
-\typebuffer[c] \getbuffer[c,b]
+\typebuffer[c][option=TEX] \getbuffer[c,b]
 
 A solution that doesn't have side effects of forcing the end of a number (using a
 space or \type {\relax} is one where we use expressions. The added overhead of
 scanning expressions is taken for granted because the effect is what we like:
 
-\startbuffer[c]
+\startbuffer[c][option=TEX]
 \def\whatever#1#2%
   {\ifdim\dimexpr#1\relax=\dimexpr#2\relax0\else1\fi}
 \stopbuffer
 
-\typebuffer[c] \getbuffer[c,b]
+\typebuffer[c][option=TEX] \getbuffer[c,b]
 
 Just for completeness we show a more obscure trick: this one hides assignments to
 temporary variables. Although performance is okay, it is the least efficient
@@ -1505,7 +2098,7 @@
 
 \ifdefined\beginlocalcontrol
 
-\startbuffer[c]
+\startbuffer[c][option=TEX]
 \def\whatever#1#2%
   {\beginlocalcontrol
    \MyDimenA#1\relax
@@ -1514,7 +2107,7 @@
    \ifdim\MyDimenA=\MyDimenB0\else1\fi}
 \stopbuffer
 
-\typebuffer[c] \getbuffer[c,b]
+\typebuffer[c][option=TEX] \getbuffer[c,b]
 
 \fi
 
@@ -1525,12 +2118,12 @@
 
 \ifdefined\norelax\else\let\norelax\relax\fi
 
-\startbuffer[c]
+\startbuffer[c][option=TEX]
 \def\whatever#1#2%
   {\ifdim#1=#2\norelax0\else1\fi}
 \stopbuffer
 
-\typebuffer[c] \getbuffer[c,b]
+\typebuffer[c][option=TEX] \getbuffer[c,b]
 
 \stopsectionlevel
 
@@ -1545,6 +2138,12 @@
 % \ifhasxtoks\scratchtoks{foo!bar} YES\else NOP\fi\par
 % \ifhasxtoks\scratchtoks{foo=bar} YES\else NOP\fi\par
 
+
+%   \ifhaschar
+%   \ifhastok
+%   \ifhastoks
+%   \ifhasxtoks
+
 % \showluatokens\foo
 
 % \ifhastoks\scratchtoks\oof YES\else NOP\fi\par

Added: trunk/Master/texmf-dist/doc/context/sources/general/manuals/lowlevel/lowlevel-debugging.tex
===================================================================
--- trunk/Master/texmf-dist/doc/context/sources/general/manuals/lowlevel/lowlevel-debugging.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/context/sources/general/manuals/lowlevel/lowlevel-debugging.tex	2025-02-19 22:48:50 UTC (rev 74156)
@@ -0,0 +1,683 @@
+
+% language=us runpath=texruns:manuals/lowlevel
+
+\environment lowlevel-style
+
+\usemodule[system-tokens]
+
+\definefontfeature[default][default][expansion=quality]
+
+\appendtoks\showmakeup[reset]\to\everybeforeoutput
+
+\usebodyfont[dejavu]
+\usebodyfont[pagella]
+
+\startdocument
+  [title=debugging,
+   color=darkgray]
+
+\startsectionlevel[title=Introduction]
+
+Below there will be some examples of how you can see what \TEX\ is doing. We
+start with some verbose logging but then move on to the more visual features. We
+occasionally point to some features present in the \LUAMETATEX\ engine. More
+details about what is possible can be found in documents in the \CONTEXT\
+distribution, for instance the \quote {lowlevel} manuals.
+
+Typesetting involves par building, page building, inserts (footnotes, floats),
+vertical adjusters (stuff before and after the current line), marks (used for
+running headers and footers), alignments (to build tables), math, local boxes
+(left and right of lines), hyphenation, font handling, and more and each has its
+own specific ways of tracing, either provided by the engine, or by \CONTEXT\
+itself. You can run \typ {context --trackers} to get a list of what \CONTEXT\ can
+do, as it lists most of them. But we start with the language, where tokens play
+an important role.
+
+\stopsectionlevel
+
+\startsectionlevel[title=Token lists]
+
+There are two main types of linked lists in \TEX: token lists and node lists.
+Token lists relate to the language and node lists collect (to be) typeset content
+and are used for several stack based structures. Both are efficiently memory
+managed by the engine. Token lists have only forward links, but node lists link
+in both directions, at least in \LUATEX\ and \LUAMETATEX.
+
+When you define a macro, like the following, you get a token list:
+
+\startbuffer
+\def\test#1{\bgroup\bf#1\egroup}
+\stopbuffer
+
+\typebuffer \getbuffer
+
+Internally the \type {\test} macro has carry the argument part and the body,
+and each is encoded as a number plus a pointer to the next token.
+
+\luatokentable\test
+
+Here the first (large) number is a memory location that holds two 4 byte integers
+per token: the so called info part codes the command and sub command, the two
+smaller numbers in the table, and a link part that points to the next memory
+location, here the nest row. The last columns provide details. A character like
+\quote {a} is one token, but a control sequence like \type {\foo} is also one
+token because every control sequence gets a number. So, both take eight bytes of
+memory which is why a format file can become large and memory consumption grows
+the more macros you use.
+
+In the body of the above \type {\test} macro we used \type {\bf} so let's see how
+that looks:
+
+\luatokentable\bf
+
+Here the numbers are much lower which is an indication that they are likely in
+the format. They are also ordered, which is a side effect of \LUAMETATEX\ making
+sure that the token lists stored in the format file keep their tokens close
+together in memory which could potentially be a bit faster. But, when we are in a
+production run, the tokens come from the pool of freed or additionally allocated
+tokens:
+
+\start
+
+\startbuffer
+\tolerant\permanent\protected\def\test[#1]#:#2%
+  {{\iftok{#1}{sl}\bs\else\bf\fi#2}}
+\stopbuffer
+
+\typebuffer \getbuffer
+
+Gives us:
+
+\luatokentable\test
+
+\stop
+
+If you are familiar with \TEX\ and spend some time looking at this you will start
+recognizing entries. For instance \type {11 115} translates to \type {letter s}
+because \type {11} is the so called command code of letters (also its \type
+{\catcode}) and the \type {s} has \UTF8 value \type {115}. The \LUAMETATEX\
+specific \type {\iftok} conditional has command code \type {135} and sub code
+\type {29}. Internally these are called \type {cmd} and \type {chr} codes because
+in many cases it's characters that are the sub commands.
+
+There is more to tell about these commands and the way macros are defined, for
+instance \type {tolerant} here means that we can omit the the first argument
+(between brackets) in which case we pick up after the \type {#:}. With \type
+{protected} we indicate that the macro will not expand in for instance an \type
+{\edef} and \type {permanent} marks the macro as one that a user cannot redefine
+(assuming that overload protection is enabled). The extended macro argument
+parsing features and macro overload protection are something specific to
+\LUAMETATEX.
+
+These introspective tables can be generated with:
+
+\starttyping
+\luatokentable\test
+\stoptyping
+
+after loading the module \type {system-tokens}. The reason for having a module
+and not a built|-|in tracer is that users seldom want to do this. Instead they
+might use \typ {\showluatokens \test} that just reports something similar to the
+console and|/|or log file.
+
+There is much more to tell but most users have no need to look into these
+details unless they are curious about what \TEX\ does. In that case using \type
+{tracingall} and inspecting the log file can be revealing too, but be prepared
+for huge files. In \LUAMETATEX\ we have tried to improve these traces a bit but
+that's of course subjective and even then logs can become huge. But even if one
+doesn't understand all that is shown, it gives an impression about how much work
+\TEX\ is actually doing.
+
+\stopsectionlevel
+
+\startsectionlevel[title=Node lists]
+
+A node list is what you get from input that is (to be) typeset. There are several
+ways to see what node lists are produced but these are all very verbose. Take for
+instance:
+
+\startbuffer
+\setbox\scratchbox\hbox{test \bf test}
+
+\showboxhere\scratchbox
+\stopbuffer
+
+\typebuffer
+
+This gives us:
+
+\starttyping[style=small,align=hangright]
+\hlist[box][color=1,colormodel=1,mathintervals=1], width 47.8457pt, height 7.48193pt, depth 0.15576pt, direction l2r, state 1
+.\list
+..\glyph[unset][color=1,colormodel=1], protected, wd 4.42041pt, ht 7.48193pt, dp 0.15576pt, language (n=1,l=2,r=3), hyphenationmode "79F3F, options "80, font <1: DejaVuSerif @ 11.0pt>, glyph U+0074
+..\glyph[unset][color=1,colormodel=1], protected, wd 6.50977pt, ht 5.86523pt, dp 0.15576pt, language (n=1,l=2,r=3), hyphenationmode "79F3F, options "80, font <1: DejaVuSerif @ 11.0pt>, glyph U+0065
+..\glyph[unset][color=1,colormodel=1], protected, wd 5.64502pt, ht 5.86523pt, dp 0.15576pt, language (n=1,l=2,r=3), hyphenationmode "79F3F, options "80, font <1: DejaVuSerif @ 11.0pt>, glyph U+0073
+..\glyph[unset][color=1,colormodel=1], protected, wd 4.42041pt, ht 7.48193pt, dp 0.15576pt, language (n=1,l=2,r=3), hyphenationmode "79F3F, options "80, font <1: DejaVuSerif @ 11.0pt>, glyph U+0074
+..\glue[spaceskip][color=1,colormodel=1] 3.49658pt plus 1.74829pt minus 1.16553pt, font 1
+..\glyph[unset][color=1,colormodel=1], protected, wd 5.08105pt, ht 7.48193pt, dp 0.15576pt, language (n=1,l=2,r=3), hyphenationmode "79F3F, options "80, font <10: DejaVuSerif-Bold @ 11.0pt>, glyph U+0074
+..\glyph[unset][color=1,colormodel=1], protected, wd 6.99854pt, ht 5.86523pt, dp 0.15576pt, language (n=1,l=2,r=3), hyphenationmode "79F3F, options "80, font <10: DejaVuSerif-Bold @ 11.0pt>, glyph U+0065
+..\glyph[unset][color=1,colormodel=1], protected, wd 6.19287pt, ht 5.86523pt, dp 0.15576pt, language (n=1,l=2,r=3), hyphenationmode "79F3F, options "80, font <10: DejaVuSerif-Bold @ 11.0pt>, glyph U+0073
+..\glyph[unset][color=1,colormodel=1], protected, wd 5.08105pt, ht 7.48193pt, dp 0.15576pt, language (n=1,l=2,r=3), hyphenationmode "79F3F, options "80, font <10: DejaVuSerif-Bold @ 11.0pt>, glyph U+0074
+\stoptyping
+
+The periods indicate the nesting level and the slash in front of the initial
+field is mostly a historic curiosity because there are no \type {\hlist} and
+\type {\glue} primitives, but actually there is in \LUAMETATEX\ a \type {\glyph}
+primitive but that one definitely doesn't want the shown arguments.
+
+That said, here we have a horizontal list where the list field points to a glyph
+that itself points to a next one. The space became a glue node. In \LUATEX\ and
+even more in \LUAMETATEX\ all nodes have or get a subtype assigned that indicates
+what we're dealing with. This is shown between the first pair of brackets. Then
+there are attributes, between the second pair of brackets, which actually is a
+also a (sparse) linked list. Here we have two attributes set, the color, where
+the number points to some stored color specification, and the (here somewhat
+redundant) color space. The names of these attributes are macro package dependent
+because attributes are just a combination of a number and value. The engine
+itself doesn't do anything with them; it is the \LUA\ code you plug in that can
+do something useful based on the values.
+
+It will be clear that watching a complete page, with many nested boxes, rules,
+glyphs, discretionaries, glues, kerns, penalties, boundaries etc quickly becomes
+a challenge which is why we have other means to see what we get so let's move on
+to that now.
+
+\stopsectionlevel
+
+\startsectionlevel[title=Visual debugging]
+
+In the early days of \CONTEXT, in the mid 90's of the previous century, one of
+the first presentations at an \NTG\ meeting was about visual debugging. This
+feature was achieved by overloading the primitives that make boxes, add glue,
+inject penalties and kerns, etc. It actually worked quite well, although in some
+cases, for instance where boxes have to be unboxed, one has to disable it. I
+remember some puzzlement among the audience about the fact that indeed these
+primitives could be overloaded without too many side effects. It will be no
+surprise that this feature has been carried on to later versions, and in
+\CONTEXT\ \MKIV\ it was implemented in a different (less intrusive) way and it
+got gradually extended.
+
+\startbuffer
+\showmakeup \hbox{test \bf test}
+\stopbuffer
+
+\typebuffer
+
+This gives us a framed horizontal box, with some text and a space glue:
+
+\startlinecorrection
+\scale[height=1cm]{\start \inlinebuffer \stop}
+\stoplinecorrection
+
+Of course not all information is well visible simply because it can be overlayed
+by what follows, but one gets the idea. Also, when you have a layer capable \PDF\
+viewer you can turn on and off categories, so you can decide to only show glue.
+You can also do that immediately, with \typ {\showmakeup [glue]}.
+
+There is a lot of granularity: \typ {hbox}, \typ {vbox}, \typ {vtop}, \typ
+{kern}, \typ {glue}, \typ {penalty}, \typ {fontkern}, \typ {strut}, \typ
+{whatsit}, \typ {glyph}, \typ {simple}, \typ {simplehbox}, \typ {simplevbox},
+\typ {simplevtop}, \typ {user}, \typ {math}, \typ {italic}, \typ {origin}, \typ
+{discretionary}, \typ {expansion}, \typ {line}, \typ {space}, \typ {depth}, \typ
+{marginkern}, \typ {mathkern}, \typ {dir}, \typ {par}, \typ {mathglue}, \typ
+{mark}, \typ {insert}, \typ {boundary}, the more selective \typ {vkern}, \typ
+{hkern}, \typ {vglue}, \typ {hglue}, \typ {vpenalty} and \typ {hpenalty}, as well
+as some presets like \typ {boxes}, \typ {makeup} and \typ {all}.
+
+When we have:
+
+\startbuffer
+\showmakeup \framed[align=normal]{\samplefile{ward}}
+\stopbuffer
+
+\typebuffer
+
+we get:
+
+\startlinecorrection
+\scale[width=1tw]{\start \inlinebuffer \stop}
+\stoplinecorrection
+
+And that is why exploring this with a layers enabled \PDF\ viewer can be of help.
+Alternatively a more selective use of \typ {\showmakup} makes sense, like
+
+\startbuffer
+\showmakeup[line,space] \framed[align=normal]{\samplefile{ward}}
+\stopbuffer
+
+\typebuffer
+
+Here we only see lines, regular spaces and spaces that are determined by the
+space factor that is driven by punctuation.
+
+\startlinecorrection
+\scale[width=1tw]{\start \inlinebuffer \stop}
+\stoplinecorrection
+
+\startbuffer[demo]
+\leftskip         2cm
+\rightskip        3cm
+\hangindent       1cm
+\hangafter        2
+\parfillrightskip 1cm
+\parfillleftskip  1cm % new
+\parinitrightskip 1cm % new
+\parinitleftskip  1cm % new
+\parindent        2cm % different
+\stopbuffer
+
+\startbuffer
+\showmakeup \framed[align=normal]{\getbuffer[demo]\samplefile{ward}}
+\stopbuffer
+
+We can typeset the previous example with these settings:
+
+\typebuffer[demo]
+
+This time we get:
+
+\startlinecorrection
+\scale[width=1tw]{\start \inlinebuffer \stop}
+\stoplinecorrection
+
+Looking at this kind of output only makes sense on screen where you can zoom in
+but what we want to demonstrate here is that in \LUAMETATEX\ we have not only a
+bit more control over the paragraph (indicated by comments) but also that we
+always have the related glue present. The reason is that we then have a more
+predictable packaged line when we look at one from the \LUA\ end. Where \TEX\
+normally moves the final line content left or right via either glue or the shifts
+property of a box, here we always use the glue. We call this normalization. Keep
+in mind that \TEX\ was not designed (implemented) with exposing its internals in
+mind, but for \LUATEX\ and \LUAMETATEX\ we have to take care of that.
+
+Another characteristic is that the paragraph stores these (and many more)
+properties in the so called initial par node so that they work well in situations
+where grouping would interfere with our objectives. As with all extensions, these
+are things that can be configured in detail but they are enabled in \CONTEXT\ by
+default.
+
+\stopsectionlevel
+
+\startsectionlevel[title=Math]
+
+Math is a good example where this kind of tracing helps development. Here is an
+example:
+
+\startbuffer
+\im { \showmakeup y = \sqrt {2x + 4} }
+\stopbuffer
+
+\typebuffer
+
+Scaled up we get:
+
+\blank[2*big]
+
+\startlinecorrection
+\scale[height=2cm]{\inlinebuffer}
+\stoplinecorrection
+
+\blank[2*big]
+
+Instead of showing everything we can again be more selective:
+
+\startbuffer
+\im {
+    \showmakeup[mathglue,glyph]
+    y = \sqrt {2x + 4}
+}
+\stopbuffer
+
+\typebuffer
+
+Here we not only limit ourselves to math glue, but also enable showing the
+bounding boxes of glyphs.
+
+\startlinecorrection
+\scale[height=2cm]{\inlinebuffer}
+\stoplinecorrection
+
+This example also shows that in \LUAMETATEX\ we have more classes than in a
+traditional \TEX\ engine. For instance, radicals have their own class as do
+digits. The radical class is an engine one, the digit class is a user defined
+class. You can set up the spacing between each class depending on the style. For
+the record: this is just one of the many extensions to the math engine and when
+extensions are being developed it helps to have this kind of tracing. Take for
+instance the next example, where we have multiple indexes (indicated by \type
+{__}) on a nucleus, that get separated by a little so called continuation
+spacing.
+
+\startbuffer
+\im {
+    \showmakeup[mathglue,glyph]
+    y = \sqrt {x__1__a {\darkred +} x__1__b}
+}
+\stopbuffer
+
+\typebuffer
+
+\startlinecorrection
+\scale[height=2cm]{\inlinebuffer}
+\stoplinecorrection
+
+Here the variable class is used for alphabetic characters and some more, contrary
+to the more traditional (often engine assigned) ordinary class that is now used
+for the left|-|overs.
+
+\stopsectionlevel
+
+\startsectionlevel[title=Fonts]
+
+Some of the mentioned tracing has shortcuts, for instance \typ {\showglyphs}.
+Here we show the same sample paragraph as before:
+
+\startbuffer
+\showglyphs
+\showfontkerns
+\framed[align=normal]{\samplefile{ward}}
+\stopbuffer
+
+\typebuffer
+
+Here is the upper left corner of the result:
+
+\startlinecorrection
+\clip[nx=4,n=1,ny=4,y=1]{\scale[width=4tw]{\start\inlinebuffer \stop}}
+\stoplinecorrection
+
+What font kerns we get depends on the font, here we use pagella:
+
+\startlinecorrection
+\switchtobodyfont[pagella]
+\scale[width=1tw]{\start\inlinebuffer \stop}
+\stoplinecorrection
+
+If we zoom in the kerns are more visible:
+
+\startlinecorrection
+\switchtobodyfont[pagella]
+\clip[nx=3,n=1]{\scale[width=3tw]{\start\inlinebuffer \stop}}
+\stoplinecorrection
+
+And here is another one:
+
+\startbuffer
+\showfontexpansion
+\framed[align={normal,hz}]{\samplefile{ward}}
+\stopbuffer
+
+\typebuffer
+
+\startlinecorrection
+\switchtobodyfont[pagella]
+\scale[width=1tw]{\start\inlinebuffer \stop}
+\stoplinecorrection
+
+or blown up:
+
+\startlinecorrection
+\switchtobodyfont[pagella]
+\clip[nx=3,n=1]{\scale[width=3tw]{\start\inlinebuffer \stop}}
+\stoplinecorrection
+
+The last line (normally) doesn't need expansion, unless we want it to compatible
+with preceding lines, space|-|wise. So when we do this:
+
+\startbuffer
+\showfontexpansion
+\framed[align={normal,hz,fit}]{\samplefile{ward}}
+\stopbuffer
+
+\typebuffer
+
+the \type {fit} directives results in somewhat different results:
+
+\startlinecorrection
+\switchtobodyfont[pagella]
+\clip[nx=3,n=1]{\scale[width=3tw]{\start\inlinebuffer \stop}}
+\stoplinecorrection
+
+As with other visual tracers you can get some insight in how \TEX\ turns your input into
+a typeset result.
+
+\stopsectionlevel
+
+\startsectionlevel[title=Overflow]
+
+By default the engine is a bit stressed to make paragraphs fit well. This means that we can
+get overflowing lines. Because there is a threshold only visible overflow is reported. If you
+want a visual clue, you can do this:
+
+\startbuffer
+\enabletrackers[builders.hpack.overflow]
+\stopbuffer
+
+\typebuffer
+
+With:
+
+\startbuffer
+\ruledvbox{\hsize 3cm test test test test test test test test}
+\stopbuffer
+
+\typebuffer
+
+We get:
+
+\startlinecorrection
+\enabletrackers[builders.hpack.overflow]
+\switchtobodyfont[dejavu,12pt]
+\getbuffer
+\disabletrackers[builders.hpack.overflow]
+\stoplinecorrection
+
+The red bar indicates a potential problem. We can also get an underflow, as demonstrated here:
+
+\startbuffer
+\ruledvbox {
+    \setupalign[verytolerant,stretch]
+    \hsize 3cm test test test test test test test test
+}
+\stopbuffer
+
+\typebuffer
+
+Now we get a blue bar that indicates that we have a bit more stretch than is
+considered optimal:
+
+\startlinecorrection
+\enabletrackers[builders.hpack.overflow]
+\switchtobodyfont[dejavu,12pt]
+\getbuffer
+\disabletrackers[builders.hpack.overflow]
+\stoplinecorrection
+
+Especially in automated flows it makes sense to increase the tolerance and permit
+stretch. Only when the strict attempt fails that will kick in.
+
+\stopsectionlevel
+
+\startsectionlevel[title=Side floats]
+
+Some mechanisms are way more complex than a user might expect from the result. An example is
+the placement of float and especially side floats.
+
+\enabletrackers[floats.anchoring]
+\startplacefigure[location=left]
+    \setupexternalfigures[location={global,default}]
+    \externalfigure[cow.pdf][width=3cm]
+\stopplacefigure
+\disabletrackers[floats.anchoring]
+
+Not only do we have to make sure that the spacing before such a float is as good
+and consistent as possible, we also need the progression to work out well, that
+is: the number of lines that we need to indent. \par For that we need to estimate
+the space needed, look at the amount of space before and after the float, check
+if it will fit and move to the next page if needed. That all involves dealing
+with interline spacing, interparagraph spacing, spacing at the top of a page,
+permitted slack at the bottom of page, the depth of the preceding lines, and so
+on. The tracer shows some of the corrections involved but leave it to the user to
+imagine what it relates to; the previous sentence gives some clues. This tracker is
+enables with:
+
+\starttyping
+\enabletrackers[floats.anchoring]
+\stoptyping
+
+\stopsectionlevel
+
+\startsectionlevel[title=Struts]
+
+We now come to one of the most important trackers, \typ {\showstruts}, and a few
+examples shows why:
+
+\startlinecorrection
+\startcombination[nx=4,ny=1,width=.2tw]
+  {\showstruts\framed[width=.2tw]               {test}} {\type{width=.2tw}}
+  {\showstruts\framed[width=.2tw,height=1cm]    {test}} {\type{height=1cm}}
+  {\showstruts\framed[width=.2tw,offset=0pt]    {test}} {\type{offset=0pt}}
+  {\showstruts\framed[width=.2tw,offset=overlay]{test}} {\type{offset=overlay}}
+\stopcombination
+\stoplinecorrection
+
+Here in all cases we've set the width to 20 percent of the text width (\type {tw}
+is an example of a plugged in dimension). In many places \CONTEXT\ adds struts in
+order to enforce proper spacing so when spacing is not what you expect, enabling
+this tracker can help you figure out why.
+
+\stopsectionlevel
+
+\startsectionlevel[title=Features]
+
+Compared to the time when \TEX\ showed up the current fonts are more complicated,
+especially because features go beyond only ligaturing and kerning. But even
+ligaturing can be different, because some fonts use kerning and replacement
+instead of a new character. Pagella uses a multiple to single replacement:
+
+\blank \showotfcomposition
+	{file:texgyrepagella-regular.otf*default @ 12pt}
+	{0}
+	{\nl effe fietsen}
+
+Not all features listed here are provided by the font (only the four character
+ones) because we're using \TEX\ which, it being \TEX, means that we have plenty
+more ways to mess around with additional features: it's all about detailed
+control. But what you see here are the steps taken: the font handler loops over
+the list of glyphs and here we see the intermediate results when something has
+changed. There can be way more loops that in this simple case.
+
+With Cambria we get a single replacement combined with kerning:
+
+\blank \showotfcomposition
+	{file:cambria.ttc*default @ 12pt}
+	{0}
+	{\nl effe fietsen}
+
+One complication is that hyphenation kicks in which means that whatever we do has
+to take the pre, post and replacement bits into account combined which what comes
+before and after. Especially for complex scripts this tracker can be illustrative
+but even then only for those who like to see what fonts do and|/|or when they add
+additional features runtime.
+
+\stopsectionlevel
+
+\startsectionlevel[title=Profiling]
+
+There are some features in \CONTEXT\ that are nice but only useful in some situations. An
+example is profiling. It is something you will not turn on by default, if only because of
+the overhead it brings. The next two paragraphs (using Pagella) show the effect.
+
+\startbuffer
+The command \tex {binom} is the standard notation for binomial coefficients and is
+preferred over \tex {choose}, which is an older macro that has limited
+compatibility with newer packages and font encodings: \im{|A|=\binom{N}{k}^2}.
+Additionally, \tex {binom} uses proper spacing and size for the binomial symbol.
+In conclusion, it is recommended to use \tex {binom} instead of \tex {choose} in
+\TEX\ for typesetting binomial coefficients for better compatibility and uniform
+appearance.\par
+\stopbuffer
+
+\bgroup \hsize 130mm
+\switchtobodyfont[pagella,11pt]
+\showmakeup[line]
+\getbuffer
+\egroup
+
+The previous paragraph is what comes out by default, while the next one used
+these settings plus an additional \typ {\enabletrackers [profiling.lines.show]}.
+
+\startbuffer[demo]
+\setuplineprofile[factor=0.1,step=0.5\emwidth]
+\setupalign[profile]
+\stopbuffer
+
+\bgroup \hsize 130mm
+\switchtobodyfont[pagella,11pt]
+\showmakeup[line]
+\getbuffer[demo]
+\enabletrackers[profiling.lines.show]
+\getbuffer
+\disabletrackers[profiling.lines.show]
+\egroup
+
+This feature will bring lines together when there is no clash and is mostly of
+use when a lot of inline math is used. However, when this variant of profiling
+(we have an older one too) is enabled on a 300 page math book with thousands of
+formulas, only in a few places it demonstrated effect; it was hardly needed
+anyway. So, sometimes tracing shows what makes sense or not.
+
+\stopsectionlevel
+
+\startsectionlevel[title=Par builder]
+
+Here is is a sample paragraph from Knuths \quotation {Digital Typography}:
+
+\startshowbreakpoints%[#1]
+    \samplefile{math-knuth-dt}
+\stopshowbreakpoints
+
+There are indicators with tiny numbers that indicate the possible breakpoints and
+we can see what the verdict is:
+
+\showbreakpoints% [#1]%
+
+The last lines in the last column show the route that the result takes. Without
+going into details, here is what we did:
+
+\starttyping
+\startshowbreakpoints
+    \samplefile{math-knuth-dt}
+\stopshowbreakpoints
+
+\showbreakpoints
+\stoptyping
+
+This kind of tracing is part of a mechanism that makes it possible to influence
+the choice by choosing a specific preferred breakpoint but that is something the
+average user is unlikely to do. The main reason why we have this kind of trackers
+is that when developing the new multi|-|step par builder feature we wanted to see
+what exactly it did influence. That mechanism uses an \LUAMETATEX\ feature where
+we can plug in additional passes using the \type {\parpasses} primitive that can
+add different strategies that are tried until criteria for over- and underfull
+thresholds and|/|or badness are met. Each step can set the relevant parameters
+differently, including expansion, which actually makes for more efficient output
+and better runtime when that features is not needed to get better results.
+
+\stopsectionlevel
+
+\startsectionlevel[title=More]
+
+There are many more visual trackers, for instance \typ {layout.vz} for when you
+enabled vertical expansion, \typ {typesetters.suspects} for identifying possible
+issues in the input like invisible spaces. Trackers like \typ
+{nodes.destinations} and \typ {nodes.references} will show the areas used by
+these mechanisms. There are also trackers for positions, (cjk and other), script
+handling, rubies, tagging, italic correction, breakpoints and so on. The examples
+in the previous sections illustrate what to expect and when to use a specific
+mechanism knowing this might trigger you to check if a tracker exists. Often the
+test suite has examples of usage.
+
+\stopsectionlevel
+
+\stopdocument
+


Property changes on: trunk/Master/texmf-dist/doc/context/sources/general/manuals/lowlevel/lowlevel-debugging.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/context/sources/general/manuals/lowlevel/lowlevel-lines.tex
===================================================================
--- trunk/Master/texmf-dist/doc/context/sources/general/manuals/lowlevel/lowlevel-lines.tex	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/sources/general/manuals/lowlevel/lowlevel-lines.tex	2025-02-19 22:48:50 UTC (rev 74156)
@@ -324,7 +324,7 @@
     depending on how glyphs interact. This depends on the language and scripts used.
 \stopitem
 \startitem
-    The result is fed into the parbuilder that applies upto three passes as mentioned
+    The result is fed into the par builder that applies up to three passes as mentioned
     before.
 \stopitem
 \stopitemize

Modified: trunk/Master/texmf-dist/doc/context/sources/general/manuals/lowlevel/lowlevel-macros.tex
===================================================================
--- trunk/Master/texmf-dist/doc/context/sources/general/manuals/lowlevel/lowlevel-macros.tex	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/sources/general/manuals/lowlevel/lowlevel-macros.tex	2025-02-19 22:48:50 UTC (rev 74156)
@@ -1144,7 +1144,7 @@
 
 Before we had \type {parameterdef} we had this:
 
-\startbuffer[test-5]
+\startbuffer
 \def\foo#1#2%
   {\integerdef\MyIndexOne\parameterindex\plusone % 1
    \integerdef\MyIndexTwo\parameterindex\plustwo % 2
@@ -1156,7 +1156,7 @@
    <\expandparameter\MyIndexTwo><\expandparameter\MyIndexTwo>}
 \stopbuffer
 
-\typebuffer[test-5]
+\typebuffer
 
 It involves more tokens, is a bit less abstract, but as it is a cheap extension
 we kept it. It actually demonstrates that one can access parameters in the stack
@@ -1167,8 +1167,30 @@
 the fourth variant with the \type {\parameterdef} quickly gains over the others.
 But it only shows in exceptional usage. This mechanism is more about abstraction:
 it permits us to efficiently turn arguments into local variables without the
-overhead involved in creating macros.
+overhead involved in creating macros. You can test if a parameter is set
 
+\startbuffer
+\tolerant\protected\def\MyMacro[#1]#:#2%
+  {\parameterdef\MyArgumentOne\plusone
+   \parameterdef\MyArgumentTwo\plustwo
+   \ifparameter\MyArgumentOne\or
+     (\MyArgumentOne)
+   \fi
+   /\MyArgumentTwo/}
+
+\MyMacro[one]{two}
+\MyMacro{two}
+\stopbuffer
+
+\typebuffer
+
+Indeed we get:
+
+\getbuffer
+
+Of course \type {\ifparameter#1\or...} is more efficient but once you use named
+parameters like this it's probably not something you're worry too much about,
+
 \stopsectionlevel
 
 \startsectionlevel[title=Nesting]
@@ -1255,7 +1277,7 @@
 category \quote {left brace} and \quote {right brace} aka \quote {begin group}
 and \quote {end group} but, no matter what they are called, they begin and end
 something: a group, argument, token list, box, etc. Any character can have those
-categories. Although it would loook strange to a \TEX\ user, this can be made
+categories. Although it would look strange to a \TEX\ user, this can be made
 valid:
 
 \startbuffer
@@ -1377,8 +1399,8 @@
 are just that: hashes. And this is why in \LUAMETATEX\ we disable the duplication
 for those cases where it serves no purpose.
 
-When the engine scans a macro definition it starts with pickin  g up the name of
-the macro. Then it starts scanning the preamble upto the left brace. In the
+When the engine scans a macro definition it starts with picking up the name of
+the macro. Then it starts scanning the preamble up to the left brace. In the
 preamble of a macro the scanner converts hashes followed by another token into
 single match token. Then when the macro body is scanned single hashes followed by
 a number become a reference, while double hashes become one hash and get
@@ -1392,7 +1414,7 @@
 \def\test#1{##1}
 \stoptyping
 
-There can be a traling \type {#} in the preamble for special purposes but we
+There can be a trailing \type {#} in the preamble for special purposes but we
 forget about that now. The first definition is valid, the second definition is
 invalid when the macro is expanded and the third definition triggers an error at
 definition time. The last definition will again trigger an error at expansion
@@ -1471,7 +1493,7 @@
 \NC \type{#G} \NC grandparent iterator \NC \type {\previousloopiterator 2} \NC \NR
 \TB
 \NC \type{#H} \NC hash escape          \NC \type {#}  \NC \NR
-\NC \type{#S} \NC space escape         \NC \ruledhbox to  \interwordspace{\novrule height .8\strutht} \NC \NR
+\NC \type{#S} \NC space escape         \NC \ruledhbox to \interwordspace{\novrule height .8\strutht} \NC \NR
 \NC \type{#T} \NC tab escape           \NC \type {\t} \NC \NR
 \NC \type{#L} \NC newline escape       \NC \type {\n} \NC \NR
 \NC \type{#R} \NC return escape        \NC \type {\r} \NC \NR
@@ -1538,3 +1560,20 @@
 %         \scratchdimentwo 20pt \the\currentstacksize\par
 %     }
 % }
+
+% Experiment
+%
+% \def\testID#i#*#d{[\the#1][\the#2]}
+% \def\testII#i#*#i{[\the#1][\number#2]}
+%
+% \startlines
+% \testID 123 123pt
+% \testID {123}{123pt}
+% \testID {123}{655360sp}
+% \testID {123}{1ex}
+% \testID {123}{2ex}
+% \testID {123}{6ex}
+% \testID {123}{10ex}
+% \testID {123}{20ex}
+% \testID {123}{123pt}
+% \stoplines

Added: trunk/Master/texmf-dist/doc/context/sources/general/manuals/lowlevel/lowlevel-pages.tex
===================================================================
--- trunk/Master/texmf-dist/doc/context/sources/general/manuals/lowlevel/lowlevel-pages.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/context/sources/general/manuals/lowlevel/lowlevel-pages.tex	2025-02-19 22:48:50 UTC (rev 74156)
@@ -0,0 +1,205 @@
+% language=us runpath=texruns:manuals/lowlevel
+
+\environment lowlevel-style
+
+% \setupalign
+%   [depth]
+
+% \setuplayout
+%   [vz=2]
+
+% \enabletrackers
+%  [layout.vz]
+
+% \showmakeup[line]
+
+\setlocalshowmakeup
+
+\startdocument
+  [title=pages,
+   color=middleyellow]
+
+\startsectionlevel[title=Introduction]
+
+There are several builder in the engine: paragraphs, math, alignments, boxes and
+if course pages. But where a paragraph is kind of complete and can be injected on
+a line by line basis, a page is less finished. When enough content is collected
+the result so far is handled over to the output routine. Calling it a routine is
+somewhat confusing because it is not really a routine, it's the token list \type
+{\output} that gets expanded and what in there is supposed to something with the
+result, like adding inserts (footnotes, moved around graphics aka floats, etc.),
+adding headers and footers, possibly using marks, and finally wrapping up and
+shipping out.
+
+The engine primarily offers a single column page so two or more columns are done
+by using tricks, like typesetting on a double height and splitting the result. If
+columns need to be balanced some extra work has to be done, and it's definitely
+non trivial when we have more that just text.
+
+In this chapter we will discuss and collect some mechanisms that deal with pages
+or operate at the outer vertical level. We might discuss some primitive but more
+likely you will see various solutions based on \TEX\ macros and \LUA\ magic.
+
+{\em This is work in progress.}
+
+\stopsectionlevel
+
+\startsectionlevel[title=Rows becoming columns]
+
+{\em This is an experimental mechanism. We need to check|/|decide how to deal
+with penalties. We also need to do more checking.}
+
+Conceptually this is a bit strange feature but useful nevertheless. There are
+several multi-column mechanisms in \CONTEXT\ and each is made for a specific kind
+of usage. You can, to some extent, consider tabulate to produce columns too,
+however it demands a bit of handy work. Say that you have this:
+
+\startbuffer
+\starttabulate[|l|l|]
+\NC 1 \NC one   \NC \NR
+\NC 2 \NC two   \NC \NR
+\NC 3 \NC three \NC \NR
+\NC 4 \NC four  \NC \NR
+\NC 5 \NC five  \NC \NR
+\stoptabulate
+\stopbuffer
+
+\typebuffer
+
+but you don't want to waste space. So you might want:
+
+\startrows[n=2,before=\blank,after=\blank]
+\getbuffer
+\stoprows
+
+or maybe even this:
+
+\startrows[n=3,before=\blank,after=\blank]
+\getbuffer
+\stoprows
+
+but still wants to code like this:
+
+\typebuffer
+
+You can do this:
+
+\starttyping
+\startcolumns[n=3]
+\getbuffer
+\stopcolumns
+\stoptyping
+
+The (mixed) columns mechanism used here normally works ok but because of the way
+columns are packaged they don't work well with for instance \quote {vz}. Page
+columns do a better job but don't mix with single columns that well. Another
+solution is this:
+
+\starttyping
+\startrows[n=3,before=\blank,after=\blank]
+\getbuffer
+\stoprows
+\stoptyping
+
+Here the result is collected in a vertical box, post processed and flushed line
+by line. We need to explicitly handle the before and after spacing here because
+it gets discarded (if added at all). When a slice of the box is part of the
+shipped out page the cells are swapped so that instead of going horizontal we go
+vertical. Compare the original
+
+\start\showmakeup[line,hbox]
+\startrows[n=3,before=\blank,after=\blank,order=horizontal]
+\getbuffer
+\stoprows
+\stop
+
+with the swapped one:
+
+\start\showmakeup[line,hbox]
+\startrows[n=3,before=\blank,after=\blank,order=vertical]
+\getbuffer
+\stoprows
+\stop
+
+This is not really a manual but let's mention a few configuration options. The
+\type {n} parameter controls the number of columns. In order to support swapping
+this mechanism adds empty pseudo cells for as far as needed. By default the \type
+{order} is \type {vertical} but one can set it to \type {horizontal} instead. In the
+next example we have set \type {height} to \type {2\strutht} and \type {depth} to
+\type {2\strutdp}:
+
+\start\showmakeup[line,hbox]
+\startrows[n=3,before=\blank,after=\blank,height=2\strutht,depth=2\strutdp]
+\getbuffer
+\stoprows
+\stop
+
+When you set \type {height} and \type {depth} to \type {max} all cells will
+get these dimensions from the tallest cell. Compare:
+
+\startbuffer
+\starttabulate[|l|l|]
+\NC 1 \NC \im {y = x + 1}           \NC \NR
+\NC 2 \NC \im {y = x^2 + 1}         \NC \NR
+\NC 3 \NC \im {y = \sqrt{x^2} + 1}    \NC \NR
+\NC 4 \NC \im {y = \frac{1}{x^2} + 1} \NC \NR
+\stoptabulate
+\stopbuffer
+
+\start\showmakeup[line,hbox]
+\startrows[n=2,before=\blank,after=\blank]
+\getbuffer
+\stoprows
+\stop
+
+with:
+
+\start\showmakeup[line,hbox]
+\startrows[n=2,before=\blank,after=\blank,height=max,depth=max]
+\getbuffer
+\stoprows
+\stop
+
+In the examples with tabulate we honor the original dimensions but you can also
+set the \type {width}, combined with a \type {distance}. Instead of a dimension
+the \type {width} parameter can be set to \type {fit}.
+
+\start\showmakeup[line,hbox]
+\startrows[n=3,width=fit,distance=2em,align={verytolerant,stretch},before=\blank,after=\blank]
+In case one wonders, of course regular columns can be used, but this is an
+alternative that actually gives you balancing for free, but of course with the
+limitation that we have lines (or cells in tables) that can be swapped. For as
+far as possible footnotes are supported but of course floats are not.
+
+So, this rows based mechanism is not the solution for all problems but when used
+in situations where one knows what goes in, it is quite powerful anyway. It
+also has a relatively simple implementation.
+\stoprows
+\stop
+
+In the previous rendering we have set the width as mentioned but also set \type
+{align} to \typ {verytolerant,stretch} so that we don't overflow lines. The \type
+{before} and \type {after} parameters are set to \type {\blank}.
+
+\stopsectionlevel
+
+\stopdocument
+
+% \startbuffer
+%     % watch the much appreciated ; operator here
+%     \protected\def\foo#1%
+%       {\iftrialtypesetting\orelse\ifnum\numexpr#1;10\relax=\plustwo
+%          \footnote{NOTE @ #1}%
+%        \fi}%
+%     \normalexpanded {\starttabulate[|||]
+%         \expandedrepeat 500 {
+%             \NC test \foo{\the\currentloopiterator}%
+%             \NC test \the\currentloopiterator
+%             \NC \NR
+%         }
+%     \stoptabulate}
+% \stopbuffer
+%
+% \startrows[n=4]
+%     \getbuffer
+% \stoprows


Property changes on: trunk/Master/texmf-dist/doc/context/sources/general/manuals/lowlevel/lowlevel-pages.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/context/sources/general/manuals/lowlevel/lowlevel-paragraphs.tex
===================================================================
--- trunk/Master/texmf-dist/doc/context/sources/general/manuals/lowlevel/lowlevel-paragraphs.tex	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/sources/general/manuals/lowlevel/lowlevel-paragraphs.tex	2025-02-19 22:48:50 UTC (rev 74156)
@@ -217,45 +217,27 @@
 longer interferes with the line break algorithm. The magic primitive is \type
 {\snapshotpar} which takes a number made from categories mentioned below:
 
-\starttabulate[|l|l|r|]
-\BC variable                       \BC category        \BC code                                        \NC \NR
-\NC \type {\hsize}                 \NC hsize           \NC 0x\uchexnumbers\hsizefrozenparcode          \NC \NR
-\NC \type {\leftskip}              \NC skip            \NC 0x\uchexnumbers\skipfrozenparcode           \NC \NR
-\NC \type {\rightskip}             \NC skip            \NC 0x\uchexnumbers\skipfrozenparcode           \NC \NR
-\NC \type {\hangindent}            \NC hang            \NC 0x\uchexnumbers\hangfrozenparcode           \NC \NR
-\NC \type {\hangafter}             \NC hang            \NC 0x\uchexnumbers\hangfrozenparcode           \NC \NR
-\NC \type {\parindent}             \NC indent          \NC 0x\uchexnumbers\indentfrozenparcode         \NC \NR
-\NC \type {\parfillleftskip}       \NC par fill        \NC 0x\uchexnumbers\parfillfrozenparcode        \NC \NR
-\NC \type {\parfillrightskip}      \NC par fill        \NC 0x\uchexnumbers\parfillfrozenparcode        \NC \NR
-\NC \type {\adjustspacing}         \NC adjust          \NC 0x\uchexnumbers\adjustfrozenparcode         \NC \NR
-\NC \type {\adjustspacingstep}     \NC adjust          \NC 0x\uchexnumbers\adjustfrozenparcode         \NC \NR
-\NC \type {\adjustspacingshrink}   \NC adjust          \NC 0x\uchexnumbers\adjustfrozenparcode         \NC \NR
-\NC \type {\adjustspacingstretch}  \NC adjust          \NC 0x\uchexnumbers\adjustfrozenparcode         \NC \NR
-\NC \type {\protrudechars}         \NC protrude        \NC 0x\uchexnumbers\protrudefrozenparcode       \NC \NR
-\NC \type {\pretolerance}          \NC tolerance       \NC 0x\uchexnumbers\tolerancefrozenparcode      \NC \NR
-\NC \type {\tolerance}             \NC tolerance       \NC 0x\uchexnumbers\tolerancefrozenparcode      \NC \NR
-\NC \type {\emergencystretch}      \NC stretch         \NC 0x\uchexnumbers\stretchfrozenparcode        \NC \NR
-\NC \type {\looseness}             \NC looseness       \NC 0x\uchexnumbers\loosenessfrozenparcode      \NC \NR
-\NC \type {\lastlinefit}           \NC last line       \NC 0x\uchexnumbers\lastlinefrozenparcode       \NC \NR
-\NC \type {\linepenalty}           \NC line penalty    \NC 0x\uchexnumbers\linepenaltyfrozenparcode    \NC \NR
-\NC \type {\interlinepenalty}      \NC line penalty    \NC 0x\uchexnumbers\linepenaltyfrozenparcode    \NC \NR
-\NC \type {\interlinepenalties}    \NC line penalty    \NC 0x\uchexnumbers\linepenaltyfrozenparcode    \NC \NR
-\NC \type {\clubpenalty}           \NC club penalty    \NC 0x\uchexnumbers\clubpenaltyfrozenparcode    \NC \NR
-\NC \type {\clubpenalties}         \NC club penalty    \NC 0x\uchexnumbers\clubpenaltyfrozenparcode    \NC \NR
-\NC \type {\widowpenalty}          \NC widow penalty   \NC 0x\uchexnumbers\widowpenaltyfrozenparcode   \NC \NR
-\NC \type {\widowpenalties}        \NC widow penalty   \NC 0x\uchexnumbers\widowpenaltyfrozenparcode   \NC \NR
-\NC \type {\displaywidowpenalty}   \NC display penalty \NC 0x\uchexnumbers\displaypenaltyfrozenparcode \NC \NR
-\NC \type {\displaywidowpenalties} \NC display penalty \NC 0x\uchexnumbers\displaypenaltyfrozenparcode \NC \NR
-\NC \type {\brokenpenalty}         \NC broken penalty  \NC 0x\uchexnumbers\brokenpenaltyfrozenparcode  \NC \NR
-\NC \type {\adjdemerits}           \NC demerits        \NC 0x\uchexnumbers\demeritsfrozenparcode       \NC \NR
-\NC \type {\doublehyphendemerits}  \NC demerits        \NC 0x\uchexnumbers\demeritsfrozenparcode       \NC \NR
-\NC \type {\finalhyphendemerits}   \NC demerits        \NC 0x\uchexnumbers\demeritsfrozenparcode       \NC \NR
-\NC \type {\parshape}              \NC shape           \NC 0x\uchexnumbers\shapefrozenparcode          \NC \NR
-\NC \type {\baselineskip}          \NC line            \NC 0x\uchexnumbers\linefrozenparcode           \NC \NR
-\NC \type {\lineskip}              \NC line            \NC 0x\uchexnumbers\linefrozenparcode           \NC \NR
-\NC \type {\lineskiplimit}         \NC line            \NC 0x\uchexnumbers\linefrozenparcode           \NC \NR
-\NC \type {\hyphenationmode}       \NC hyphenation     \NC 0x\uchexnumbers\hyphenationfrozenparcode    \NC \NR
-\stoptabulate
+\startluacode
+    local specifications = tex.getpardataspecifications()
+    local categories = tex.getfrozenparvalues()
+ -- context.starttabulate { "|l|l|l|l|" }
+    context.starttabulate { "|l|l|l|    " }
+    context.BC() context("variable")
+    context.BC() context("category")
+    context.BC() context("code")
+    context.NC() context.NR()
+    for i=1,#specifications do
+        local s = specifications[i]
+        local n = s[3]
+        local c = s[4]
+        context.NC() context.formatted.type("\\%s",n)
+        context.NC() context(categories[c])
+        context.NC() context("0x%08X",c)
+     -- context.NC() context.formatted.type("\\%sfrozensparcode",categories[c])
+        context.NC() context.NR()
+    end
+    context.stoptabulate()
+\stopluacode
 
 As you can see here, there are more paragraph related parameters than in for
 instance \PDFTEX\ and \LUATEX\ and these are (to be) explained in the
@@ -1270,7 +1252,7 @@
 \prevdepth-1000pt
 \stoptyping
 
-although in \CONTEXT\ we use \type {\ignoredepthcriterium} instead of the hard
+although in \CONTEXT\ we use \typ {\ignoredepthcriterion} instead of the hard
 coded dimension. We now give a more extensive example:
 
 \startbuffer[definition-1]
@@ -1309,7 +1291,7 @@
 
 \typebuffer[example][option=TEX]
 
-In this example we set \type {\ignoredepthcriterium} to $\tf -50.0pt$ instead of the
+In this example we set \typ {\ignoredepthcriterion} to $\tf -50.0pt$ instead of the
 normal $\tf -1000pt$. The helper is defined as:
 
 \typebuffer[definition-1][option=TEX]
@@ -1320,14 +1302,14 @@
 
 The result is shown in \in {figures} [fig:prevdepth-1] \in {and}
 [fig:prevdepth-2]. The first case is what we normally have in text and we haven't
-set \type {prevdepth} explicitly between lines so \TEX\ will just look at the
+set \type {\prevdepth} explicitly between lines so \TEX\ will just look at the
 depth of the lines. In the second case the depth is ignored when less than the
-criterium which is why, when we set the depth of the box to a negative value we
+criterion which is why, when we set the depth of the box to a negative value we
 get somewhat interesting skips.
 
 \startplacefigure[reference=fig:prevdepth-1]
     \showmakeup[line]
-    \ignoredepthcriterium-50pt
+    \ignoredepthcriterion-50pt
     \setupwhitespace[none]
     \getbuffer[definition-1,example]
 \stopplacefigure
@@ -1334,7 +1316,7 @@
 
 \startplacefigure[reference=fig:prevdepth-2]
     \showmakeup[line]
-    \ignoredepthcriterium-50pt
+    \ignoredepthcriterion-50pt
     \setupwhitespace[none]
     \getbuffer[definition-2,example]
     \blank[5*line]
@@ -1341,7 +1323,7 @@
 \stopplacefigure
 
 I'm sure one can use this effect otherwise than intended but I doubt is any user
-is willing to do this but the fact that we can lower the criterium makes for nice
+is willing to do this but the fact that we can lower the criterion makes for nice
 experiments. Just for the record, in \in {figure} [fig:prevdepth-3] you see what
 we get with positive values:
 
@@ -1361,13 +1343,13 @@
 
 \startplacefigure[reference=fig:prevdepth-3]
     \showmakeup[line]
-    \ignoredepthcriterium50pt
+    \ignoredepthcriterion50pt
     \setupwhitespace[none]
     \getbuffer[definition-2,example]
 \stopplacefigure
 
 Watch the interline skip kicking in when we make the depth larger than in
-\type {\ignoredepthcriterium} being $\tf 50pt$.
+\typ {\ignoredepthcriterion} being $\tf 50pt$.
 
 \stopsectionlevel
 
@@ -1395,10 +1377,130 @@
 
 \stopsectionlevel
 
+\startsectionlevel[title=Penalties]
+
+In \in {figiure} [fig:penaltylists] we demonstrate the (accumulated) effect of a
+few penalty arrays that you can set. Keep in mind that these are low level
+(primitive) commands that can interfere with other mechanisms. The
+interline penalties are applied to the current paragraph in the same was as \typ
+{\looseness} is. This makes sense because using the club and widow penalties is
+more predictable. You have to zoom in to see how the penalties add up. As with
+\typ {\looseness} the \typ {\interlinepenalties} get reset before the paragraph,
+which is shown in the bottom cells of this figure.
+
+\startbuffer
+\interlinepenalty 0
+\clubpenalty      0
+\widowpenalty     0
+\orphanpenalty    0
+\shapingpenalty   0
+
+\clubpenalties      5   1000   2000   3000   4000   5000 % 6 -> 0
+\widowpenalties     5     10     20     30     40     50 % 6 -> 0
+\orphanpenalties    5      1      2      3      4      5 % 6 -> 0
+\interlinepenalties 5 100000 200000 300000 400000 500000 % 6 -> 0
+\stopbuffer
+
+\typebuffer
+
+It actually makes sense to explicitly zero the last entry because as you can see
+in the figure the last one gets used when we run out of entries.
+
+\startplacefigure[title=Penalty lists,reference=fig:penaltylists]
+\startcombination[nx=2,ny=2]
+  {\ruledvbox\bgroup
+     \hsize.45tw
+     \showmakeup[penalty]
+     \getbuffer
+     \samplefile{ward} \par
+     \samplefile{ward} \par
+   \egroup} {\type{\normalizeparmode 8}}
+  {\ruledvbox\bgroup
+     \hsize.45tw
+     \bitwiseflip\normalizeparmode\pluseight
+     \showmakeup[penalty]
+     \getbuffer
+     \samplefile{ward} \par
+     \samplefile{ward} \par
+   \egroup} {\type{\normalizeparmode 8}}
+  {\ruledvbox\bgroup
+     \hsize.45tw
+     \showmakeup[penalty]
+     \getbuffer
+
+     \samplefile{ward} \par
+     \samplefile{ward} \par
+   \egroup} {newline and \type{\normalizeparmode 8}}
+  {\ruledvbox\bgroup
+     \hsize.45tw
+     \bitwiseflip\normalizeparmode\pluseight
+     \showmakeup[penalty]
+     \getbuffer
+
+     \samplefile{ward} \par
+     \samplefile{ward} \par
+   \egroup} {newline and \type{\normalizeparmode 8}}
+\stopcombination
+\stopplacefigure
+
+Can you guess what the next specification does?
+
+\starttyping
+\widowpenalties 3 options \largestspecificationoptioncode 3000 2000 1000
+\clubpenalties  3 options \largestspecificationoptioncode   30   20   10
+\stoptyping
+
+\stopsectionlevel
+
+\startsectionlevel[title=Par passes]
+
+Everything comes together in what we call par passes. Before we explain them first
+something about a feature that makes setting up for instance \type {\widowpenalties}
+easier. Here are a few definitions:
+
+\starttyping
+\specificationdef\strictwidowpenalties      \widowpenalties  \plusthree
+    \maxcount \maxcount \zerocount \relax
+\specificationdef\strictwidowpenaltiestwo   \widowpenalties  \plustwo
+    \maxcount \zerocount \relax
+\specificationdef\strictwidowpenaltiesthree \widowpenalties  \plusthree
+    \maxcount \maxcount \zerocount \relax
+\specificationdef\strictwidowpenaltiesfour  \widowpenalties  \plusfour
+    \maxcount \maxcount \maxcount \zerocount \relax
+\stoptyping
+
+These are defined in the core and hooked into the alignment interface:
+
+\starttyping
+\installaligncommand{strictwidows}  {\strictwidowpenalties     }
+\installaligncommand{strictwidows:2}{\strictwidowpenaltiestwo  }
+\installaligncommand{strictwidows:3}{\strictwidowpenaltiesthree}
+\installaligncommand{strictwidows:4}{\strictwidowpenaltiesfour }
+\stoptyping
+
+We also have four such \quote {strict} definitions for club but only one for
+broken penalties. For orphan penalties we have four \quote {less} orphan
+penalties but for widow, club and broken we have only one. So we end up with \typ
+{lessorphans}, \typ {lessorphans:2}, \typ {lessorphans:3}, \typ {lessorphans:4},
+\typ {defaultwidows}, \typ {defaultclubs}, \typ {defaultbroken}, \typ
+{strictwidows}, \typ {strictwidows:2}, \typ {strictwidows:3}, \typ
+{strictwidows:4}, \typ {strictclubs}, \typ {strictclubs:2}, \typ {strictclubs:3},
+\typ {strictclubs:4} and \typ {strictbroken}.
+
+You can also use \type {\specificationdef} for other constructs that have this
+multiple variable setup. Now to par passes. This is a mechanism unique to
+\LUAMETATEX\ that permits more than the usual upto three paragraph break steps:
+pretolerance, tolerance and emergency. How this works is explained in detail in
+the paragraphs chapter in the \type {beyond} document.
+
+{\em todo: copy some from article when published}
+
+\stopsectionlevel
+
 \stopdocument
 
 % I rewarded myself after writing a section by watching the video "Final Thing On
-% My Mind", The Pineapple This, Live, 2020, the usual perfect GH performance,
+% My Mind", The Pineapple Thief, Live, 2020, the usual perfect GH performance,
 % wondering if live would turn to normal so that we could go to such concerts once
 % again given successive covids. Writing manuals can do with a distraction.
 %

Modified: trunk/Master/texmf-dist/doc/context/sources/general/manuals/lowlevel/lowlevel-style.tex
===================================================================
--- trunk/Master/texmf-dist/doc/context/sources/general/manuals/lowlevel/lowlevel-style.tex	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/sources/general/manuals/lowlevel/lowlevel-style.tex	2025-02-19 22:48:50 UTC (rev 74156)
@@ -98,8 +98,8 @@
    {section,subject},
    {subsection,subsubject},
    {subsubsection,subsubsubject},
-   {subsubsubsection,subsubsubject},
-   {subsubsubsubsection,subsubsubject}]
+   {subsubsubsection,subsubsubsubject},
+   {subsubsubsubsection,subsubsubsubsubject}]
 
 \startsetups document:start
 
@@ -127,11 +127,13 @@
     \starttabulate
         \NC Author      \NC Hans Hagen
                            \doifdocumentvariable{coauthor}{ & \documentvariable{coauthor}}
-                                               \NC \NR
-        \NC \CONTEXT    \NC \contextversion    \NC \NR
-        \NC \LUAMETATEX \NC \texengineversion  \NC \NR
-        \NC Support     \NC www.pragma-ade.com \NC \NR
-        \NC             \NC contextgarden.net  \NC \NR
+                                                      \NC \NR
+        \NC \CONTEXT    \NC \contextversion           \NC \NR
+        \NC \LUAMETATEX \NC \luametatexverboseversion \space\vl\space
+                            \luametatexfunctionality  \NC \NR
+        \NC Support     \NC www.pragma-ade.com        \NC \NR
+        \NC             \NC contextgarden.net         \NC \NR
+        \NC             \NC ntg-context at ntg.nl        \NC \NR
     \stoptabulate
 
 \stopsectionlevel

Modified: trunk/Master/texmf-dist/doc/context/sources/general/manuals/lowlevel/lowlevel.tex
===================================================================
--- trunk/Master/texmf-dist/doc/context/sources/general/manuals/lowlevel/lowlevel.tex	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/sources/general/manuals/lowlevel/lowlevel.tex	2025-02-19 22:48:50 UTC (rev 74156)
@@ -39,8 +39,11 @@
     \startsectionlevel[title=Loops]        \component [lowlevel-loops]        \stopsectionlevel
     \startsectionlevel[title=Tokens]       \component [lowlevel-tokens]       \stopsectionlevel
     \startsectionlevel[title=Buffers]      \component [lowlevel-buffers]      \stopsectionlevel
-  % \startsectionlevel[title=Accuracy]     \component [lowlevel-accuracy]     \stopsectionlevel
+    \startsectionlevel[title=Accuracy]     \component [lowlevel-accuracy]     \stopsectionlevel
+    \startsectionlevel[title=Balancing]    \component [lowlevel-balancing]    \stopsectionlevel
+    \startsectionlevel[title=Lines]        \component [lowlevel-lines]        \stopsectionlevel
+    \startsectionlevel[title=Debugging]    \component [lowlevel-debugging]    \stopsectionlevel
+  % \startsectionlevel[title=Fonts]        \component [lowlevel-fonts]        \stopsectionlevel
+    \startsectionlevel[title=Pages]        \component [lowlevel-pages]        \stopsectionlevel
 
 \stoptext
-
-

Modified: trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametafun/luametafun-color.tex
===================================================================
--- trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametafun/luametafun-color.tex	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametafun/luametafun-color.tex	2025-02-19 22:48:50 UTC (rev 74156)
@@ -6,6 +6,8 @@
 
 \startchapter[title={Color}]
 
+\startsection[title=Lab colors]
+
 There are by now plenty of examples made by users that use color and \METAFUN\
 provides all kind of helpers. So do we need more? When I play around with things
 or when users come with questions that then result in a nice looking graphic, the
@@ -74,10 +76,10 @@
 
 \startbuffer
 \startcombination[nx=4,ny=1]
-    {\startMPcode draw lmt_labtorgb [ l = 20, step = 20 ] ysized 35mm withpen pencircle scaled 8 ; \stopMPcode} {\type {l = 20}}
-    {\startMPcode draw lmt_labtorgb [ l = 40, step = 20 ] ysized 35mm withpen pencircle scaled 8 ; \stopMPcode} {\type {l = 40}}
-    {\startMPcode draw lmt_labtorgb [ l = 60, step = 20 ] ysized 35mm withpen pencircle scaled 8 ; \stopMPcode} {\type {l = 60}}
-    {\startMPcode draw lmt_labtorgb [ l = 80, step = 20 ] ysized 35mm withpen pencircle scaled 8 ; \stopMPcode} {\type {l = 80}}
+    {\startMPcode draw lmt_labtorgb [ l = 20, step = 20 ] ysized 35mm withpen pencircle scaled 8 ; \stopMPcode} {\type {l=20}}
+    {\startMPcode draw lmt_labtorgb [ l = 40, step = 20 ] ysized 35mm withpen pencircle scaled 8 ; \stopMPcode} {\type {l=40}}
+    {\startMPcode draw lmt_labtorgb [ l = 60, step = 20 ] ysized 35mm withpen pencircle scaled 8 ; \stopMPcode} {\type {l=60}}
+    {\startMPcode draw lmt_labtorgb [ l = 80, step = 20 ] ysized 35mm withpen pencircle scaled 8 ; \stopMPcode} {\type {l=80}}
 \stopcombination
 \stopbuffer
 
@@ -131,8 +133,263 @@
 have. Maybe this doesn't belong in the \METAFUN\ core but it's not that much code
 and a nice demo. After all, there is much in there that is seldom used.
 
+A perceptive color space that uses the lab model is lhc. Here is an example of
+how that can be used:
+
+\startbuffer
+\startMPdefinitions
+vardef lchcolorcircle(expr l, c, n) =
+    image (
+        save p, h ; path p ; numeric h ;
+        p := arcpointlist n of fullcircle ;
+        for i within p :
+            h := i*360/n ;
+            draw
+                pathpoint scaled 50
+                withpen pencircle scaled (120/n)
+                withcolor lchtorgb(l,c,h) ;
+            draw
+                textext ("\tt\bf" & decimal h)
+                scaled .4
+                shifted (pathpoint scaled 50)
+                withcolor white ;
+        endfor ;
+    )
+enddef ;
+\stopMPdefinitions
+\stopbuffer
+
+\typebuffer[option=TEX]
+
+\getbuffer
+
+Of course you can come up with another representation than this but here is
+how it looks:
+
+\startbuffer
+\startMPcode
+draw image (
+    draw lchcolorcircle(75,100,24) ;
+    draw lchcolorcircle(50,100,24) scaled .75 ;
+    draw lchcolorcircle(25,100,24) scaled .50 ;
+) ysized 4cm ;
+\stopMPcode
+\stopbuffer
+
+\typebuffer[option=TEX]
+
+\startbuffer
+\startcombination[nx=6,ny=1,distance=.02tw]
+    {\startMPcode draw lmt_lchcircle [ l = 75, c = 100, steps = 12 ] xsized .15TextWidth ; \stopMPcode} {\type {l=75,c=100}}
+    {\startMPcode draw lmt_lchcircle [ l = 50, c = 100, steps = 12 ] xsized .15TextWidth ; \stopMPcode} {\type {l=50,c=100}}
+    {\startMPcode draw lmt_lchcircle [ l = 25, c = 100, steps = 12 ] xsized .15TextWidth ; \stopMPcode} {\type {l=25,c=100}}
+    {\startMPcode draw lmt_lchcircle [ l = 75, c =  25, steps = 12 ] xsized .15TextWidth ; \stopMPcode} {\type {l=75,c=25}}
+    {\startMPcode draw lmt_lchcircle [ l = 50, c =  25, steps = 12 ] xsized .15TextWidth ; \stopMPcode} {\type {l=50,c=25}}
+    {\startMPcode draw lmt_lchcircle [ l = 25, c =  25, steps = 12 ] xsized .15TextWidth ; \stopMPcode} {\type {l=25,c=25}}
+\stopcombination
+\stopbuffer
+
+You can get rather nice color pallets by manipulating the axis without really
+knowing what color you get. The \type {h} value is in angles and shown inside the
+circles.
+
+\startlinecorrection
+\getbuffer
+\stoplinecorrection
+
+Of course we can again wrap this into a parameter driven macro, this time \typ
+{lmt_lchcircle} which accepts \type {l}, \type {c}, \type {steps} and a
+\type {labels} boolean.
+
+\stopsection
+
+\startsection[title=Transparency]
+
+Although transparency is independent from color we discuss one aspect here. Where
+color is sort of native to \METAPOST, especially when we talk \RGB\ and \CMYK,
+other color spaces are implemented using so called prescripts, think \quotation
+{information bound to paths and related wrappers}.
+
+When you do this:
+
+\startbuffer
+\startMPcode
+path c ; c := fullcircle scaled 1cm ;
+picture p ; p := image (
+    fill c shifted ( 0mm,0) withcolor "darkred" ;
+    fill c shifted ( 5mm,0) withcolor "darkgreen" ;
+    fill c shifted (10mm,0) withcolor "darkblue" ;
+) ;
+
+draw p ; draw p shifted (3cm,0) withcolor "middlegray" ;
+\stopMPcode
+\stopbuffer
+
+\typebuffer[option=TEX]
+
+You will notice that the picture gets recolored so the color properties set on
+the picture are applied to separate elements that make it. A picture itself is
+actually just a list of objects and it has no properties of its own. A way around
+this is to wrap it in a group, bound or clip which basically means something:
+begin, list of objects, end. By putting properties on the wrapper we can support
+features that apply to what gets wrapped without adapting the properties
+directly.
+
+\startlinecorrection \getbuffer \stoplinecorrection
+
+Because transparency is also implemented with prescripts we have a problem:
+should it apply to the wrapper or to everything? In the \LUATEX\ version of the
+\METAPOST\ library the scripts get assigned to the first element that supports
+them and because there only paths can have these properties, you cannot simply
+change the transparency without looping over the picture and redraw it.
+
+\startbuffer
+\startMPcode
+picture q ; q := image (
+    fill c shifted ( 0mm,0) withcolor "darkcyan"    withtransparency (1,.5);
+    fill c shifted ( 5mm,0) withcolor "darkmagenta" withtransparency (1,.5);
+    fill c shifted (10mm,0) withcolor "darkyellow"  withtransparency (1,.5);
+) ;
+
+draw q ; draw q shifted (3cm,0) withtransparency (1,.25) ;
+\stopMPcode
+\stopbuffer
+
+\typebuffer[option=TEX]
+
+In \LUAMETATEX\ we have a way to assign the properties to the elements so we get
+three less transparent circles:
+
+\startlinecorrection \getbuffer \stoplinecorrection
+
+In \MKIV\ only the first circle becomes lighter.
+
+\startbuffer
+\startMPcode
+picture r ; r := image (
+    draw p ;
+    draw q shifted (7cm,0cm) ;
+) ;
+
+draw r ;
+draw r shifted (3cm,0) withtransparency (1,.75) ;
+\stopMPcode
+\stopbuffer
+
+\typebuffer[option=TEX]
+
+This example shows that when we draw \type {p} and \type {q} we get the elements
+at the same level (flattened) so we can indeed apply the transparency to all of
+them.
+
+\startlinecorrection \getbuffer \stoplinecorrection
+
+So, keep in mind that this only works in \MKXL\ and not in \MKVI\ (unless we also
+upgrade \LUATEX\ to support this).
+
+\stopsection
+
+\startsection[title=Surrounding color]
+
+Here is an example that shows how to make a graphic listen to the current
+color:
+
+\startbuffer
+\startcolor[blue]
+    blue before
+    \startMPcode
+        setbackendoption "noplugins" ;
+        fill fullcircle xscaled 3EmWidth yscaled 1.5ExHeight ;
+    \stopMPcode\space
+    blue after
+\stopcolor
+\stopbuffer
+
+\typebuffer[option=tex]
+
+This backend option disables {\em all} additional features so it will only work
+for for relative simple graphics. There might be more detailed control in the
+future.
+
+\startlinecorrection \getbuffer \stoplinecorrection
+
+\stopsection
+
 \stopchapter
 
 \stopcomponent
 
+% \startMPpage[offset=1ts]
 
+%     draw image (
+%         fill (unitsquare xscaled 10cm yscaled 4cm)
+%             withcolor svgcolor(0.5,0,0)
+%         ;
+
+%         registerluminositygroup ("test") (
+%             fill (unitsquare scaled 2cm) shifted (1cm,1cm)
+%                 withshademethod "circular"
+%                 withshadecolors (.6,.1)
+%         ) ;
+
+%         applyluminositygroup ("test") (
+%             fill (unitsquare scaled 2cm) shifted (1cm,1cm)
+%                 withshademethod "circular"
+%         ) ;
+
+%         draw luminositygroup (
+%             fill (unitsquare scaled 2cm) shifted (4cm,1cm)
+%                 withshademethod "circular"
+%                 withshadecolors (.6,.1)
+%         ) (
+%             fill (unitsquare scaled 2cm) shifted (4cm,1cm)
+%                 withshademethod "circular"
+%         ) ;
+
+%         draw luminosityshade (
+%             (unitsquare scaled 2cm) shifted (7cm,1cm)
+%         ) (
+%                 withshademethod "circular"
+%                 withshadecolors (.6,.1)
+%         ) (
+%                 withshademethod "circular"
+%         ) ;
+%     ) ;
+
+% \stopMPpage
+
+% \startMPpage[offset=1ts]
+
+%     draw image (
+%         fill (unitsquare xscaled 10cm yscaled 4cm)
+%             withcolor "darkblue"
+%         ;
+
+%         registerluminositygroup ("test") (
+%             fill (unitsquare scaled 2cm) shifted (1cm,1cm)
+%                 withcolor "darkgreen"
+%         ) ;
+
+%         applyluminositygroup ("test") (
+%             fill (unitsquare scaled 2cm) shifted (1cm,1cm)
+%                 withcolor "darkred"
+%         ) ;
+
+%         draw luminositygroup (
+%             fill (unitsquare scaled 2cm) shifted (4cm,1cm)
+%                 withcolor "darkgreen"
+%         ) (
+%             fill (unitsquare scaled 2cm) shifted (4cm,1cm)
+%                 withcolor "darkred"
+%         ) ;
+
+%         draw luminosityshade (
+%             (unitsquare scaled 2cm) shifted (7cm,1cm)
+%         ) (
+%                 withcolor "darkgreen"
+%         ) (
+%                 withcolor "darkred"
+%         ) ;
+%     ) ;
+
+% \stopMPpage

Added: trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametafun/luametafun-envelope.tex
===================================================================
--- trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametafun/luametafun-envelope.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametafun/luametafun-envelope.tex	2025-02-19 22:48:50 UTC (rev 74156)
@@ -0,0 +1,604 @@
+% language=us runpath=texruns:manuals/luametafun
+
+\environment luametafun-style
+
+\startcomponent luametafun-envelopes
+
+\startMPdefinitions
+    loadmodule("misc") ;
+\stopMPdefinitions
+
+\startchapter[title={Envelopes}]
+
+\startsection[title=Introduction]
+
+Envelopes are what \METAPOST\ makes for a non circular path. A circular path is
+supported directly by \POSTSCRIPT\ and \PDF. When such a oath is rotated, it is
+still somewhat easy because \METAPOST\ outputs the shape twice, transformed
+differently, but in the end we have one curve, and filling the right space the
+two curves bound which is native behavior of path filling. When the pen is more
+complex, that is not a transformed basic pencircle, \METAPOST\ will calculate a
+so called envelope. This chapter limits the explanation to what we can observe
+and better explanations about pens can be found in the \METAFONT\ book.
+
+\stopsection
+
+\startsection[title=Pens]
+
+The code involves is non trivial and can only work reliable for paths made from
+straight lines which which is why a pen is always reduced to a path with straight
+lines. Internally the term \quote {convex hull} is used. In \LUAMETATEX\ we have
+that operation as primitive.
+
+\startbuffer
+\startMPcode
+pen mypen ; mypen := makepen (fullcircle);
+draw origin withpen mypen scaled 100 withcolor "darkblue" ;
+\stopMPcode
+\stopbuffer
+
+\typebuffer[option=TEX]
+
+By drawing just one point we see the pen:
+
+\startlinecorrection \getbuffer \stoplinecorrection
+
+Indeed the circle has been simplified here.
+
+\startbuffer
+\startMPcode
+def ShowPaths(expr pth) =
+    path p[] ;
+    p[0] := pth scaled 50;
+    p[1] := uncontrolled p[0] ; % show(p[1]);
+    p[2] := convexed     p[0] ; % show(p[2]);
+    draw p[0] shifted (  0,0) withpen pencircle scaled 5 withcolor "darkgreen" ;
+    draw p[1] shifted (100,0) withpen pencircle scaled 5 withcolor "darkred"   ;
+    draw p[2] shifted (160,0) withpen pencircle scaled 5 withcolor "darkblue"  ;
+    draw p[1] shifted (260,0) withpen pencircle scaled 5 withcolor "darkred"  ;
+    draw p[2] shifted (260,0) withpen pencircle scaled 5 withcolor "white" ;
+enddef ;
+
+ShowPaths(fullcircle) ;
+\stopMPcode
+\stopbuffer
+
+\typebuffer[option=TEX]
+
+In this case the straightforward removal of control points gives the same result
+as first calculating the convex hull.
+
+\startlinecorrection \getbuffer \stoplinecorrection
+
+\startbuffer
+\startMPcode
+ShowPaths(fullcircle randomized .1) ;
+\stopMPcode
+\stopbuffer
+
+\typebuffer[option=TEX]
+
+In this example we still seem to get what we expect:
+
+\startlinecorrection \getbuffer \stoplinecorrection
+
+\startbuffer
+\startMPcode
+ShowPaths(fullcircle randomized .4) ;
+\stopMPcode
+\stopbuffer
+
+\typebuffer[option=TEX]
+
+But a bit of exaggeration shows that we don't get the same:
+
+\startlinecorrection \getbuffer \stoplinecorrection
+
+It all has to do with heuristics and nasty border cases when we turn corners. Here is
+what these (not randomized) paths look like, first the \type {uncontrolled}:
+
+\starttyping
+(25,0) .. controls (22.56,5.89) and (20.12,11.79)
+.. (17,68,17,68) .. controls (11.79,20.12) and (5.89,22.56)
+.. (0,25) .. controls (-5.89,22.56) and (-11.79,20.12)
+.. (-17,68,17,68) .. controls (-20.12,11.79) and (-22.56,5.89)
+.. (-25,0) .. controls (-22.56,-5.89) and (-20.12,-11.79)
+.. (-17,68,-17,68) .. controls (-11.79,-20.12) and (-5.89,-22.56)
+.. (0,-25) .. controls (5.89,-22.56) and (11.79,-20.12)
+.. (17,68,-17,68) .. controls (20.12,-11.79) and (22.56,-5.89)
+.. cycle
+\stoptyping
+
+and here is the \type {unconvexed}:
+
+\starttyping
+(-25,0) .. controls (-22.56,-5.89) and (-20.12,-11.79)
+.. (-17,68,-17,68) .. controls (-11.79,-20.12) and (-5.89,-22.56)
+.. (0,-25) .. controls (5.89,-22.56) and (11.79,-20.12)
+.. (17,68,-17,68) .. controls (20.12,-11.79) and (22.56,-5.89)
+.. (25,0) .. controls (22.56,5.89) and (20.12,11.79)
+.. (17,68,17,68) .. controls (11.79,20.12) and (5.89,22.56)
+.. (0,25) .. controls (-5.89,22.56) and (-11.79,20.12)
+.. (-17,68,17,68) .. controls (-20.12,11.79) and (-22.56,5.89)
+.. cycle
+\stoptyping
+
+Now, in order to see what convexing has to do with pens we also introduce a
+\quote {nep} which is a pen that doesn't get its path convexed. We mainly have
+this variant available for experimenting and documentation purposes. Take these
+definitions:
+
+\startbuffer
+\startMPdefinitions
+path PthP ; PthP := (fullcircle scaled 100) randomized 80 ;
+pen  PenP ; PenP := makepen      PthP ;
+nep  NepP ; NepP := makenep      PthP ;
+path ConP ; ConP := convexed     PthP ;
+path UncP ; UncP := uncontrolled PthP ;
+\stopMPdefinitions
+\stopbuffer
+
+\typebuffer[option=TEX] \getbuffer
+
+That are used in:
+
+\startbuffer
+\startMPdefinitions
+def Pth =
+    draw PthP  ;
+enddef ;
+def Pen =
+    draw origin withpen PenP withcolor "darkred" withtransparency (1,.5) ;
+enddef ;
+def Nep =
+    draw origin withpen NepP withcolor "darkblue" withtransparency (1,.5);
+enddef ;
+def Con =
+    fill ConP withpen pencircle scaled 0 withcolor "darkgreen" withtransparency (1,.5) ;
+enddef ;
+def Unc =
+    fill UncP withpen pencircle scaled 0 withcolor "darkyellow" withtransparency (1,.5) ;
+enddef ;
+\stopMPdefinitions
+\stopbuffer
+
+\typebuffer[option=TEX] \getbuffer
+
+The main reason for showing the differences in \in {figure} [fig:trickyconvex] is that
+one should be aware of possible side effects
+
+\startbuffer[all]
+\startcombination [nx=3,ny=4]
+   {\startMPcode draw image (Pen Nep Pth) ; \stopMPcode} {pen          nep}
+   {\startMPcode draw image (Pen Con Pth) ; \stopMPcode} {pen          convexed}
+   {\startMPcode draw image (Pen Unc Pth) ; \stopMPcode} {pen          uncontrolled}
+   {\startMPcode draw image (Nep Pen Pth) ; \stopMPcode} {nep          pen}
+   {\startMPcode draw image (Nep Con Pth) ; \stopMPcode} {nep          convexed}
+   {\startMPcode draw image (Nep Unc Pth) ; \stopMPcode} {nep          uncontrolled}
+   {\startMPcode draw image (Con Pen Pth) ; \stopMPcode} {convexed     pen}
+   {\startMPcode draw image (Con Nep Pth) ; \stopMPcode} {convexed     nep}
+   {\startMPcode draw image (Con Unc Pth) ; \stopMPcode} {convexed     uncontrolled}
+   {\startMPcode draw image (Unc Pen Pth) ; \stopMPcode} {uncontrolled pen}
+   {\startMPcode draw image (Unc Nep Pth) ; \stopMPcode} {uncontrolled nep}
+   {\startMPcode draw image (Unc Con Pth) ; \stopMPcode} {uncontrolled convexed}
+\stopcombination
+\stopbuffer
+
+\startplacefigure[title={Pens are paths with straight lines.},reference=fig:trickyconvex]
+    \getbuffer[all]
+\stopplacefigure
+
+In case you doubt if all this matters, if we use a not to weird path, we're
+fine, as is demonstrated in \in {figure} [fig:okayconvex]; here we used
+
+\starttyping[option=MP]
+PthP := fullcircle yscaled 80 xscaled 140 rotated 45 ;
+\stoptyping
+
+\startbuffer
+\startMPdefinitions
+path PthP ; PthP := fullcircle yscaled 80 xscaled 140 rotated 45 ;
+pen  PenP ; PenP := makepen      PthP ;
+nep  NepP ; NepP := makenep      PthP ;
+path ConP ; ConP := convexed     PthP ;
+path UncP ; UncP := uncontrolled PthP ;
+\stopMPdefinitions
+\stopbuffer
+
+\getbuffer
+
+\startplacefigure[title={When using decent pens the results will be consistent.},reference=fig:okayconvex]
+    \getbuffer[all]
+\stopplacefigure
+
+And when we use such rather normal (non extreme) paths for pens we're ready for
+envelopes.
+
+\page
+
+\startsection[title=Usage]
+
+An envelop is the outline that we get when we run a pen over a path. An envelop
+is (of course) a closed path. Here is a simple example:
+
+\startbuffer
+\startMPcode
+path p ; p := origin -- (100,10) -- cycle ;
+path e ; e := envelope pensquare scaled 10 rotated 45 of p ;
+
+draw e withpen pencircle scaled 2 withcolor "darkred" ;
+draw p withpen pencircle scaled 2 withcolor "darkgray" ;
+
+fill e shifted (120,0) withcolor "darkred" ;
+draw p shifted (120,0) withcolor "lightgray" withpen pencircle scaled 2  ;
+
+fill e shifted (240,0)
+    withshademethod "linear"
+    withshadecolors ("darkred","lightgray") ;
+\stopMPcode
+\stopbuffer
+
+\typebuffer[option=TEX]
+
+This also demonstrates that this way you can apply a shade to a path:
+
+\startlinecorrection
+\getbuffer
+\stoplinecorrection
+
+One problem with envelopes is that you can get unexpected results so let's try to
+explore some details. We start by defining a main path, a pen, a path from the
+pen, and two envelopes.
+
+\startbuffer
+\startMPcode
+path PthP ; PthP := fullcircle xysized(10cm,2cm) ;
+pen  PenP ; PenP := pensquare scaled 2mm rotated 45 ;
+path PthU ; PthU := fullsquare scaled 2mm rotated 45 ;
+path PatP ; PatP := makepath PenP ;
+
+path PthI ; PthI := envelope PenP of reverse PthP ;
+path PthO ; PthO := envelope PenP of PthP ;
+
+fill PthI && PthO && cycle withcolor "lightgray" ;
+
+draw PthI withcolor "darkred" ;
+draw PthO withcolor "darkgreen" ;
+draw PthP dashed evenly ;
+\stopMPcode
+\stopbuffer
+
+\typebuffer[option=TEX]
+
+Watch the difference between the two envelopes: one is the result from traveling
+the pen clockwise and one from running anti-clockwise:
+
+\startlinecorrection
+\getbuffer
+\stoplinecorrection
+
+We can emulate running the pen over the path:
+
+\startbuffer
+\startMPcode
+fill PthI && PthO && cycle withcolor "darkgray" ;
+fill
+    for i within (arcpointlist 50 of PthP) :
+        PatP shifted pathpoint &&
+    endfor cycle
+    withcolor "middlegray" ;
+\stopMPcode
+\stopbuffer
+
+\typebuffer[option=TEX]
+
+Instead of drawing 50 paths, we draw an efficient single one made from 50
+segments and we get this:
+
+\startlinecorrection
+\getbuffer
+\stoplinecorrection
+
+If you look closely at the first rendering you will notice an artifact in the inner
+envelope.
+
+\startlinecorrection
+\startMPcode
+draw PthI withpen pencircle scaled .4mm withcolor "darkred" ;
+\stopMPcode
+\stoplinecorrection
+
+We can get rid of this with a helper macro:
+
+\startbuffer
+\startMPcode
+draw reducedenvelope(PthI) withpen pencircle scaled .4mm withcolor "darkred" ;
+\stopMPcode
+\stopbuffer
+
+\typebuffer[option=TEX]
+
+Of course you get no guarantees but here it works:
+
+\startlinecorrection
+\getbuffer
+\stoplinecorrection
+
+One reason why the helper is not in the core is that it doesn't catch all cases:
+
+\startbuffer
+\startMPcode
+path p ; p := fullcircle scaled 4cm ;
+pen  e ; e := pensquare scaled 3mm ;
+draw envelope e of p ;
+draw envelope e of reverse p ;
+p := p rotated eps shifted (5cm,0) ;
+draw envelope e of p ;
+draw envelope e of reverse p ;
+p := p shifted (5cm,0) ;
+draw          p  enveloped e ;
+draw (reverse p) enveloped e ;
+\stopMPcode
+\stopbuffer
+
+\typebuffer[option=TEX]
+
+Watch how a tiny rotations rid us of the weird rectangle, and the helper makes three
+extra inflected points go away but we're still stuck with an imperfection.
+
+\startlinecorrection
+\getbuffer
+\stoplinecorrection
+
+When we only fill the envelope we don't suffer from this'because the artifacts
+stay within the bounds. Sometimes rotating the pen by \type {eps} also helps.
+
+\startbuffer
+\startMPcode
+path p ; p := fullcircle scaled 4cm ;
+pen  e ; e := pensquare scaled 3mm ;
+fill
+    (envelope e of p) && (envelope e of reverse p) && cycle
+    withcolor "darkblue" ;
+draw % just show the artifacts:
+    (envelope e of p) && (envelope e of reverse p) && cycle
+    withcolor "white" ;
+\stopMPcode
+\stopbuffer
+
+\typebuffer[option=TEX]
+
+\startlinecorrection
+\getbuffer
+\stoplinecorrection
+
+\stopsection
+
+\startsection[title=Details]
+
+For those who are interested in seeing what goes on behind the scenes, this
+section shows some examples that we made when writing an article about envelopes. We start with a  couple of definitions
+
+\startbuffer
+\startMPdefinitions
+loadmodule("misc") ;
+
+path mypaths[] ;
+path mypens[] ;
+
+mypens[ 1] := fullcircle     scaled 15mm ;
+mypens[ 2] := fulldiamond    scaled 15mm ;
+mypens[ 3] := fulltriangle   scaled 15mm ;
+mypens[ 4] := fullsquare     scaled 15mm ; % randomized 4mm ;
+mypens[ 5] := starring(-1/3) scaled 15mm ;
+mypens[ 6] := starring(-1/2) scaled 15mm ;
+mypens[ 7] := starring(-eps) scaled 15mm ;
+mypens[ 8] := starring(1)    scaled 15mm ;
+mypens[ 9] := starring(1/2)  scaled 15mm ;
+mypens[10] := starring(eps)  scaled 15mm ;
+
+mypaths[1] := fullcircle                               scaled 10cm ;
+mypaths[2] := ((0,0) -- (1/2,1/2) -- (2/2,0))          scaled 10cm ;
+mypaths[3] := ((0,0) -- (1/2,1/2) -- (2/2,0) -- cycle) scaled 10cm ;
+\stopMPdefinitions
+\stopbuffer
+
+\typebuffer[option=TEX] \getbuffer
+
+We are not going to use all these shapes and pens here but you might want to try
+out some yourself. We \in {Figure} [fig:envelope:1] we apply a so called \type
+{pensquare} to the paths. In \in {Figure} [fig:envelope:2] we use a star but
+\METAPOST\ will turn this one into a rectangle. In \in {Figure} [fig:envelope:3]
+we also use star but here the points are used.
+
+\startbuffer
+\startMPcode
+draw showenvelope(mypaths[1], mypens[4]) ;
+draw showenvelope(mypaths[2], mypens[4]) shifted (10cm, 1cm) ;
+draw showenvelope(mypaths[3], mypens[4]) shifted (10cm,-6cm) ;
+\stopMPcode
+\stopbuffer
+
+\typebuffer[option=TEX]
+
+\startplacefigure[title={How pen 4 creates an envelope.},reference=fig:envelope:1]
+    \scale[width=1tw]{\getbuffer}
+\stopplacefigure
+
+\startbuffer
+\startMPcode
+draw showenvelope(mypaths[1], mypens[6]) ;
+draw showenvelope(mypaths[2], mypens[6]) shifted (10cm, 1cm) ;
+draw showenvelope(mypaths[3], mypens[6]) shifted (10cm,-6cm) ;
+\stopMPcode
+\stopMPcode
+\stopbuffer
+
+\typebuffer[option=TEX]
+
+\startplacefigure[title={How pen 6 creates an envelope.},reference=fig:envelope:2]
+    \scale[width=1tw]{\getbuffer}
+\stopplacefigure
+
+\startbuffer
+\startMPcode
+draw showenvelope(mypaths[1], mypens[9]) ;
+draw showenvelope(mypaths[2], mypens[9]) shifted (10cm, 1cm) ;
+draw showenvelope(mypaths[3], mypens[9]) shifted (10cm,-6cm) ;
+\stopMPcode
+\stopbuffer
+
+\typebuffer[option=TEX]
+
+\startplacefigure[title={How pen 9 creates an envelope.},reference=fig:envelope:3]
+    \scale[width=1tw]{\getbuffer}
+\stopplacefigure
+
+\stopsection
+
+\startsection[title=Reducing]
+
+If you watch the third shape in the previous examples, the last figure differs in
+that it has a symmetrical inner envelope. We can actually use this knowledge to
+define a pensquare that is better suited for envelopes. We take this example:
+
+\startbuffer
+\startMPdefinitions
+def ExamplePaths =
+    path PthA ; PthA := fullcircle scaled 5cm ;
+    path PthB ; PthB := triangle   scaled 5cm ;
+
+    draw envelope pensquare scaled 10mm of reverse PthA
+        withpen pencircle scaled 2mm
+        withcolor "darkblue"
+    ;
+    draw envelope pensquare scaled 10mm of reverse PthB
+        withpen pencircle scaled 2mm
+        withcolor "darkblue"
+    ;
+
+    draw (reverse PthA) enveloped (pensquare scaled 10mm)
+        withpen pencircle scaled 2mm
+        withcolor "darkred"
+    ;
+    draw (reverse PthB) enveloped (pensquare scaled 10mm)
+        withpen pencircle scaled 2mm
+        withcolor "darkred"
+    ;
+ enddef ;
+\stopMPdefinitions
+\stopbuffer
+
+\typebuffer[option=TEX] \getbuffer
+
+We define two renderings, one with the normal pensquare definition:
+
+\startbuffer[a]
+\startMPcode
+pensquare := makepen(unitsquare shifted -(.5,.5)) ; ExamplePaths ;
+\stopMPcode
+\stopbuffer
+
+\typebuffer[a][option=TEX]
+
+and one with an alternative definition where we have middle points on the
+edges that stick out one eps:
+
+\startbuffer[b]
+\startMPcode
+pensquare := makepen((starring(eps) scaled 1/2)) ; ExamplePaths ;
+\stopMPcode
+\stopbuffer
+
+\typebuffer[b][option=TEX]
+
+This gives \in {figure} [fig:envelope:4]. The blue extensions are what we get
+without clean up but at least the alternative has symmetrical ears.
+
+\startplacefigure[title={An alternative pensquare.},reference=fig:envelope:4]
+    \startcombination[nx=2,ny=1]
+        {\scale[width=.45tw]{\getbuffer[a]}} {default pensquare}
+        {\scale[width=.45tw]{\getbuffer[b]}} {alternative pensquare}
+    \stopcombination
+\stopplacefigure
+
+When you have a somewhat weird envelope the \type {reducedenvelope} macro might
+be able to improve it. The \typ {<pth> enveloped <pen>} primary macro has this
+built in.
+
+\stopsection
+
+\stopchapter
+
+\stopcomponent
+
+% \startMPdefinitions
+% interim tracereducedpath := false ;
+% interim scrutinizing := 3 ;
+%
+% path Paths[], Envelopes[] ; pen Pens[];
+%
+% Paths[1] := reverse fullcircle scaled 200 rotated 30 xyscaled(2,1) ;
+% Paths[2] := reverse fullcircle scaled 200 ;
+% Paths[3] := fullcircle scaled 200 ;
+%
+% Paths[4] := reverse (
+%         (100,0){up}
+%      .. xyrelative (100,100)
+%      .. {left}(0,100)
+%      .. xyrelative (-100,100)
+%      .. {down}(-100,0)
+%      .. xyrelative (-100,-100)
+%      .. {right}(0,-100)
+%      .. xyrelative (100,-100)
+%      .. {up}cycle );
+%
+% Paths[5] := reverse fullsquare rotated 80 scaled 200 ;
+% Paths[6] := fullsquare  scaled 200 rotated 20 ;
+%
+% Paths[7] := for i = 0 step 50 until 200 : (i,uniformdeviate(100)) .. endfor nocycle ;
+% Paths[8] := for i = 0 step 50 until 2000 : (i,uniformdeviate(100)) .. endfor nocycle ;
+%
+% Pens[1] := makepen starring(eps) scaled 1/2 ;
+% Pens[2] := Pens[1] scaled 50 ;
+% Pens[3] := pensquare scaled 50 rotated eps ;
+% Pens[4] := makepen punked fullcircle scaled 50 ;
+% Pens[5] := makepen fulltriangle scaled 50 ;
+%
+% loadmodule "misc" ;
+%
+% % lessdigits := false;
+%
+% def MyTest(expr p, q) =
+%     % show(Pens[q]);
+%     % show(Paths[p]);
+%     draw showreducedenvelope(Paths[p],Pens[q],decimal p,decimal q)
+% enddef ;
+%
+% def MyTest(expr p, q) =
+%     draw Paths[p] enveloped Pens[q] withpen pencircle scaled 2 dashed evenly ;
+% enddef ;
+%
+% % def MyTest(expr p, q) =
+% %     save pp ; path pp ;
+% %     pp := Paths[p] enveloped Pens[q] ;
+% %     fill pp withcolor .7[darkred,white] ;
+% %     draw pp withpen pencircle scaled 2 withcolor darkred ;
+% %     draw pp dashed evenly withcolor white ;
+% %     draw Paths[p] withpen pencircle scaled 2 withcolor darkred ;
+% % enddef ;
+%
+% \stopMPdefinitions
+%
+% \starttext
+%
+% % \startMPpage[offset=1TS] MyTest(5,3) ; \stopMPpage
+% % \startMPpage[offset=1TS] MyTest(8,4) ; \stopMPpage
+% \dorecurse{8}{
+%     \startMPpage[offset=1TS] MyTest(#1,2) ; \stopMPpage
+%     \startMPpage[offset=1TS] MyTest(#1,3) ; \stopMPpage
+%     \startMPpage[offset=1TS] MyTest(#1,4) ; \stopMPpage
+%     \startMPpage[offset=1TS] MyTest(#1,5) ; \stopMPpage
+% }
+%
+% \stoptext


Property changes on: trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametafun/luametafun-envelope.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametafun/luametafun-fonts.tex
===================================================================
--- trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametafun/luametafun-fonts.tex	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametafun/luametafun-fonts.tex	2025-02-19 22:48:50 UTC (rev 74156)
@@ -323,6 +323,38 @@
 This is an experimental interface anyway so we don't explain the parameters yet
 as there might be more of them.
 
+Sometimes examples can be made from answers to questions on the mailing list,
+like the following:
+
+\starttyping[option=TEX]
+\startMPcalculation{simplefun}
+    vardef QuotationDash =
+        draw image (
+            interim linecap := squared ;
+            save l ; l := 0.2 ;
+            draw (l/2,2) -- (15-l/2,2) withpen pencircle scaled l ;
+        )
+    enddef ;
+
+    lmt_registerglyphs [
+        name     = "symbols",
+        units    = 10,
+        usecolor = true,
+        width    = 15,
+        height   = 2.1,
+        depth    = 0,
+    ] ;
+
+    lmt_registerglyph [ category = "symbols", unicode = "0x2015", code  = "QuotationDash ;" ] ;
+\stopMPcalculation
+
+\definefontfeature[default][default][metapost=symbols]
+\stoptyping
+
+Of course you need to figure out how to enter the equivalent of \type {\char
+"2015} and|/|or the font used in your editor should have that character too. Here
+the wide dash is about twice the \type {\emdash}.
+
 \stopchapter
 
 \stopcomponent

Modified: trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametafun/luametafun-interface.tex
===================================================================
--- trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametafun/luametafun-interface.tex	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametafun/luametafun-interface.tex	2025-02-19 22:48:50 UTC (rev 74156)
@@ -6,6 +6,8 @@
 
 \startchapter[title={Interface}]
 
+\startsection[title=Macros]
+
 Because graphic solutions are always kind of personal or domain driven it makes not
 much sense to cook up very generic solutions. If you have a project where \METAPOST\
 can be of help, it also makes sense to spend some time on implementing the basics that
@@ -150,6 +152,164 @@
 \getbuffer
 \stoplinecorrection
 
+\stopsection
+
+\startsection[title=Units]
+
+Many dimensions used at the \TEX\ end are also available in \METAFUN. Examples
+are \typ {TextWidth}, \typ {EmHeight} and \typ {StrutHeight}. In \MKIV\ they are
+numeric variables that get set every graphic but in \MKXL\ these are not numeric
+variables but (hidden) \LUA\ calls so they can't be set at the \METAPOST\ end;
+but they are injected as numeric quantities so you can efficiently them in
+calculations.
+
+In \METAPOST\ examples you often find \type {u} being used as unit, like:
+
+\starttyping
+u := 1cm ; draw (u,0) -- (u,u) -- (3u,0);
+\stoptyping
+
+However, what if you want to set such a unit at the \TEX\ end? For this purpose
+we have a dedicated variable, which is demonstrated in the following examples.
+First we set a variable:
+
+\starttyping[option=TEX]
+\uunit=1cm
+\stoptyping
+
+\typebuffer[option=TEX]
+
+and next we apply it:
+
+\startbuffer
+\framed[offset=.2uu,strut=no]
+    \bgroup
+        \startMPcode
+            fill fullcircle scaled (2uu) withcolor "darkblue" ;
+            fill fullcircle scaled (8mm) withcolor "middlegray" ;
+        \stopMPcode
+    \egroup
+\stopbuffer
+
+\typebuffer[option=TEX]
+
+The \type {\uunit} dimension register is hooked into \TEX's unit parser as type
+{uu} (user unit). At the \METAPOST\ end \type {uu} is effectively a \LUA\ call
+that fetches the of the dimension from the \TEX end and presents it a a numeric.
+
+\startlinecorrection \uunit=1cm \getbuffer \stoplinecorrection
+
+When we set
+
+\starttyping[option=TEX]
+\uunit=5mm
+\stoptyping
+
+The same code gives::
+
+\startlinecorrection \uunit=5mm \getbuffer \stoplinecorrection
+
+\startbuffer
+\framed[offset=.1uu,strut=no]
+    \bgroup
+        \startMPcode
+            save uu ; numeric uu ; uu := 5mm ;
+            fill fullcircle scaled (3uu) withcolor "darkred"  ;
+            fill fullcircle scaled (2uu) withcolor "middlegray" ;
+        \stopMPcode
+    \egroup
+\stopbuffer
+
+\typebuffer[option=TEX]
+
+This demonstrates that we can overload \type {uu} but make sure to save it first
+so that later it is available again.
+
+\startlinecorrection \getbuffer \stoplinecorrection
+
+\stopsection
+
+\startsection[title=Paths from \LUA]
+
+Passing paths to \METAPOST\ using specific properties is sort of tricky because
+once the points are set, the solver will be applied. This translates curls,
+tensions and|/|or explicit control points into the final control points.
+
+In the next example we show a few interfaces. Not all of that might be perfect
+yes but in most cases it works out.
+
+\startbuffer
+\startluacode
+    local shapes = { }
+    shapes[1] = { {0,0}, {-1,-1}, {-1, 0}, {0,0}, "cycle" }
+    shapes[2] = { {0,1}, { 1, 0}, { 1,-1}, {0,1}, "cycle" }
+    shapes[3] = { {0,2}, { 2, 0}, { 2, 1}, {0,2}, "cycle" }
+    shapes[4] = {
+        {0,0}, {-1,-1}, {-1, 0}, {0,0}, "cycle", "append",
+        {0,1}, { 1, 0}, { 1,-1}, {0,1}, "cycle", "append",
+        {0,2}, { 2, 0}, { 2, 1}, {0,2}, "cycle", "append",
+    }
+    shapes[5] = {
+        { path = shapes[1], append = true },
+        { path = shapes[2], append = true },
+        { path = shapes[3], append = true },
+    }
+    function mp.getshapepath(n)
+        mp.inject.path(shapes[n])
+    end
+\stopluacode
+\stopbuffer
+
+\typebuffer[option=TEX] \getbuffer
+
+\startbuffer
+\startMPcode
+    path p ;
+    p := lua.mp.getshapepath(1) scaled 1cm ;
+    draw p withpen pencircle scaled 2pt withcolor red ;
+    p := lua.mp.getshapepath(2) scaled 1cm ;
+    draw p withpen pencircle scaled 2pt withcolor blue ;
+    p := lua.mp.getshapepath(3) scaled 1cm ;
+    draw p withpen pencircle scaled 2pt withcolor green ;
+    p := lua.mp.getshapepath(4) scaled 1cm &&cycle ;
+    fill p withcolor 0.9 ;
+    draw p withpen pencircle scaled 1pt withcolor 0.7 ;
+    p := lua.mp.getshapepath(5) scaled 1cm ;
+    draw p withpen pencircle scaled .25pt withcolor 0.2 ;
+\stopMPcode
+\stopbuffer
+
+\typebuffer[option=TEX]
+
+Especially cycling and appending needs to be done precisely in order not to get
+redundant (or bad) points.
+
+\startlinecorrection \getbuffer \stoplinecorrection
+
+This combines the first three paths similar to the fourth and fifths. If you
+doubt what you get you can always \type {show} the path and look for \type
+{{begin}} and \type {{end}} indicators.
+
+\startbuffer
+\startMPcode
+    path p ;
+    p := lua.mp.getshapepath(1) scaled 1cm &&
+         lua.mp.getshapepath(2) scaled 1cm &&
+         lua.mp.getshapepath(3) scaled 1cm ;
+    draw p withpen pencircle scaled 1pt withcolor 0.7 ;
+  % show(p);
+\stopMPcode
+\stopbuffer
+
+\typebuffer[option=TEX]
+
+We draw the result and see that they are decoupled indeed thanks to some \type
+{&&} magic:
+
+\startlinecorrection \getbuffer \stoplinecorrection
+
+\stopsection
+
 \stopchapter
 
 \stopcomponent

Modified: trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametafun/luametafun-introduction.tex
===================================================================
--- trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametafun/luametafun-introduction.tex	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametafun/luametafun-introduction.tex	2025-02-19 22:48:50 UTC (rev 74156)
@@ -73,6 +73,17 @@
 also expect other users to come up with solutions, so maybe in the end we will
 have a collection of modules for specific tasks.
 
+There is some duplication between this manual and the \METAFUN\ manual which is
+mostly a side effect of some functionality not being present in \MKIV\ and
+discussing it in the \LUAMETAFUN\ manual would be confusing. Also, from an
+educational point of view it doesn't hurt to read about it twice.
+
+Because Mikael Sundqvist and I both like \METAPOST\ and we work together on
+improving existing and exploring new features in the engine as well as \METAFUN.
+Some of the examples in this manual result from that. We have a lot of fun
+working on this and a side effect this manual benefits a lot from our
+collaboration.
+
 \startlines
 Hans Hagen
 Hasselt NL

Added: trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametafun/luametafun-lines.tex
===================================================================
--- trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametafun/luametafun-lines.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametafun/luametafun-lines.tex	2025-02-19 22:48:50 UTC (rev 74156)
@@ -0,0 +1,33 @@
+% language=us runpath=texruns:manuals/luametafun
+
+\environment luametafun-style
+
+\startcomponent luametafun-lines
+
+\startchapter[title={Lines}]
+
+We assume that when you arrived here you already know how to deal with drawing
+lines including the way they get connected. When you draw a line some properties
+are controlled by variables which forces you to save existing values when you
+temporarily adapts them.
+
+\startbuffer
+\startMPcode
+draw (0, 0) -- (20, 0)                                withcolor "darkyellow" ;
+draw (0,-1) -- (20,-1)           withlinecap  butt    withcolor "darkred" ;
+draw (0,-2) -- (20,-2)           withlinecap  squared withcolor "darkgreen" ;
+draw (0,-3) -- (20,-3) -- (0,-4) withlinejoin squared withcolor "darkblue" ;
+\stopMPcode
+\stopbuffer
+
+\typebuffer[option=TEX]
+
+These \type {with} features are a \LUAMETATEX\ extension:
+
+\startlinecorrection \scale[width=1tw]{\getbuffer} \stoplinecorrection
+
+\stopchapter
+
+\stopcomponent
+
+


Property changes on: trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametafun/luametafun-lines.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametafun/luametafun-outline.tex
===================================================================
--- trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametafun/luametafun-outline.tex	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametafun/luametafun-outline.tex	2025-02-19 22:48:50 UTC (rev 74156)
@@ -14,7 +14,7 @@
 underlying code is the same as in \MKIV.
 
 \startbuffer[1a]
-\startMPcode{doublefun}
+\startMPcode
     draw lmt_outline [
         text      = "hello"
         kind      = "draw",
@@ -24,7 +24,7 @@
 \stopbuffer
 
 \startbuffer[1b]
-\startMPcode{doublefun}
+\startMPcode
     draw lmt_outline [
         text          = "hello",
         kind          = "both",
@@ -54,7 +54,7 @@
 \in {figure} [outline:2], where we coded the leftmost example as:
 
 \startbuffer[2a]
-\startMPcode{doublefun}
+\startMPcode
     draw lmt_outline [
         text          = "hello",
         kind          = "reverse",
@@ -66,7 +66,7 @@
 \stopbuffer
 
 \startbuffer[2b]
-\startMPcode{doublefun}
+\startMPcode
     draw lmt_outline [
         text          = "hello",
         kind          = "both",
@@ -91,7 +91,7 @@
 level optimization where the shape is only output once.
 
 \startbuffer[3a]
-\startMPcode{doublefun}
+\startMPcode
     draw lmt_outline [
         text          = "hello",
         kind          = "fillup",
@@ -102,7 +102,7 @@
 \stopbuffer
 
 \startbuffer[3b]
-\startMPcode{doublefun}
+\startMPcode
     draw lmt_outline [
         text          = "hello",
         kind          = "fill",
@@ -125,7 +125,7 @@
 outline and fill. Let's show some more:
 
 \startbuffer[4]
-\startMPcode{doublefun}
+\startMPcode
     draw lmt_outline [
         text      = "\obeydiscretionaries\samplefile{tufte}",
         align     = "normal",
@@ -148,7 +148,7 @@
 \stopplacefigure
 
 \startbuffer[5]
-\startMPcode{doublefun}
+\startMPcode
     draw lmt_outline [
         text      = "\obeydiscretionaries\samplefile{ward}",
         align     = "normal,tolerant",
@@ -183,6 +183,29 @@
 \LL
 \stoptabulate
 
+Here is a bonus:
+
+\startbuffer
+\startMPcode
+    draw lmt_outline [
+        kind = "outline",
+        text = "\bf To foo or to bar, that's the question.",
+    ] xsized TextWidth
+        withshademethod "linear"
+        withshadedirection down
+        withshadecolors ("lightred","lightblue")
+    ;
+\stopMPcode
+\stopbuffer
+
+\typebuffer
+
+Here we get a path back instead of a picture with multiple elements:
+
+\startlinecorrection
+    \getbuffer
+\stoplinecorrection
+
 \stopchapter
 
 \stopcomponent

Added: trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametafun/luametafun-paths.tex
===================================================================
--- trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametafun/luametafun-paths.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametafun/luametafun-paths.tex	2025-02-19 22:48:50 UTC (rev 74156)
@@ -0,0 +1,1007 @@
+% language=us runpath=texruns:manuals/luametafun
+
+% \enablemode[check]
+
+% corners == boundingbox
+
+\environment luametafun-style
+
+\startcomponent luametafun-paths
+
+\startchapter[title={Paths}]
+
+\startsection[title=Introduction]
+
+In the end \METAPOST\ is all about creating (beautiful) paths. In this chapter we
+introduce some extensions to the engine that can be of help when constructing
+paths. Some relate to combining paths segments, others to generating the points.
+
+\stopsection
+
+\startsection[title=Cycles]
+
+The \type {cycle} commands closes a path: the end gets connected to the start. One
+way to construct a path stepwise is using a \type {for} loop, as in:
+
+\startbuffer
+\startMPcode
+draw (
+    (0,sin(0)) for i=pi/20 step pi/20 until 2pi :
+        .. (i,sin(i))
+    endfor
+) xysized(8cm,2cm)
+withpen pencircle scaled 1mm
+withcolor "darkred" ;
+\stopMPcode
+\stopbuffer
+
+\typebuffer[option=TEX] \startlinecorrection \getbuffer \stoplinecorrection
+
+This looks kind of ugly because we need to make sure that we only put the
+\type {..} between points. If we have a closed path we can do this:
+
+\startbuffer
+\startMPcode
+draw (
+    for i=0 step pi/20 until 2pi :
+        (i,sin(i)) ..
+    endfor cycle
+) xysized(8cm,2cm)
+withpen pencircle scaled 1mm
+withcolor "darkblue" ;
+\stopMPcode
+\stopbuffer
+
+\typebuffer[option=TEX] \startlinecorrection \getbuffer \stoplinecorrection
+
+But that is not what we want here. It is for this reason that we have a different
+operator, one that closes a path without cycling:
+
+\startbuffer
+\startMPcode
+draw (
+    for i=0 step pi/20 until 2pi :
+        (i,sin(i)) ..
+    endfor nocycle
+) xysized(8cm,2cm)
+withpen pencircle scaled 1mm
+withcolor "darkgreen" ;
+\stopMPcode
+\stopbuffer
+
+\typebuffer[option=TEX] \startlinecorrection \getbuffer \stoplinecorrection
+
+\stopsection
+
+\startsection[title=Combining paths]
+
+The \type {&} concat operator requires the last point of the previous and the
+first point of the current path to be the same. This restriction is lifted with
+the \type {&&}, \type {&&&} and \type {&&&&} commands.
+
+\startbuffer
+\startMPcode
+def Example(expr p, q) =
+    draw image (
+        drawpathonly (p &&   q) shifted ( 0u,0) ;
+        drawpathonly (p &&&  q) shifted ( 5u,0) ;
+        drawpathonly (p &&&& q) shifted (10u,0) ;
+    ) ;
+enddef ;
+
+path p[] ; numeric u ; u := 1cm ;
+p[1] := (0u,0u) -- (1u,0u) -- (1u,1u) ;
+p[2] := (1u,1u) -- (2u,1u) -- (2u,0u) ;
+
+Example(p[1], p[2]) ;
+
+Example(p[1] shifted (0u,-2u), p[2] shifted (1u,-2u)) ;
+\stopMPcode
+\stopbuffer
+
+\typebuffer[option=TEX] \startlinecorrection \getbuffer \stoplinecorrection
+
+The precise working can be best be seen from what path we get. The single
+ampersand just does a concat but issues an error when the paths don't touch so we
+leave that one out.
+
+% 0 -> 0
+
+\startbuffer
+\startMPdefinitions
+path p, q, r ;
+p := (0,0) -- (1,0) ;
+q := (2,0) -- (3,0) ;
+r := (1,0) -- (3,0) ;
+vardef Example(expr p) =
+  % show (p);
+    drawpathonly p scaled 4cm ;
+enddef ;
+\stopMPdefinitions
+\stopbuffer
+
+\typebuffer[option=TEX] \getbuffer
+
+\testpage[4]
+
+This gives us:
+
+\startlinecorrection \startMPcode Example(p && q) ; \stopMPcode \stoplinecorrection
+
+\starttyping
+(0,0)         .. controls (0.33,0) and (0.67,0) .. % p && q
+(1,0) {end}   .. controls (2,   0) and (1,   0) ..
+(2,0) {begin} .. controls (2.33,0) and (2.67,0) ..
+(3,0)
+\stoptyping
+
+\testpage[3]
+
+\startlinecorrection \startMPcode Example(p && r) ; \stopMPcode \stoplinecorrection
+
+\starttyping
+(0,0)         .. controls (0.33,0) and (0.67,0) .. % p && r
+(1,0) {end}   .. controls (1,   0) and (1,   0) ..
+(1,0) {begin} .. controls (1.67,0) and (2.33,0) ..
+(3,0)
+\stoptyping
+
+\testpage[3]
+
+\startlinecorrection \startMPcode Example(p &&& q) ; \stopMPcode \stoplinecorrection
+
+\starttyping
+(0,0)         .. controls (0.33,0) and (0.67,0) .. % p &&& q
+(1,0)         .. controls (2.33,0) and (2.67,0) ..
+(3,0)
+\stoptyping
+
+\testpage[3]
+
+\startlinecorrection \startMPcode Example(p &&& r) ; \stopMPcode \stoplinecorrection
+
+\starttyping
+(0,0)         .. controls (0.33,0) and (0.67,0) .. % p &&& r
+(1,0)         .. controls (1.67,0) and (2.33,0) ..
+(3,0)
+\stoptyping
+
+\testpage[3]
+
+\startlinecorrection \startMPcode Example(p &&&& q) ; \stopMPcode \stoplinecorrection
+
+\starttyping
+(0,0)         .. controls (0.33,0) and (0.67,0) .. % p &&&& q
+(1,0) {end}   .. controls (2,   0) and (1,   0) ..
+(2,0) {begin} .. controls (2.33,0) and (2.67,0) ..
+(3,0)
+\stoptyping
+
+\testpage[3]
+
+\startlinecorrection \startMPcode Example(p &&&& r) ; \stopMPcode \stoplinecorrection
+
+\starttyping
+(0,0)         .. controls (0.33,0) and (0.67,0) .. % p &&&& r
+(1,0) {end}   .. controls (1,   0) and (1,   0) ..
+(1,0) {begin} .. controls (1.67,0) and (2.33,0) ..
+(3,0)
+\stoptyping
+
+If we have one (concat) ampersand we check if the paths touch, error or move on.
+If we have three (tolerant concat) or four (tolerant append) ampersands we check
+if the end and begin are the same and if so, we remove one and set the controls
+points halfway, and then degrade to one (concat) or two (append) ampersands.
+Finally when (then) we have one ampersand (concat) we connect with some curl
+magic but when we have two (append) we connect without the curl magic: we let the
+left and right control points be the points.
+
+\startbuffer
+\startMPcode
+path p[] ;
+
+p[1] := (0,0) -- (100,0) -- (100,100) ; for i=2 upto 5 : p[i] := p[1] ; endfor ;
+
+p[1] := p[1]   -- cycle ; p[1] := p[1]   -- cycle ; p[1] := p[1]   -- cycle ;
+p[2] := p[2]   -- cycle ; p[2] := p[2]  &&& cycle ; p[2] := p[2]  &&& cycle ;
+p[3] := p[3]   -- cycle ; p[3] := p[3] &&&& cycle ; p[3] := p[3] &&&& cycle ;
+p[4] := p[4]  &&& cycle ;
+p[5] := p[5] &&&& cycle ;
+
+for i=1 upto 5 :
+  % show(p[i]) ;
+    fill p[i] shifted (i*110,0) withcolor "middlegray" ;
+    draw p[i] shifted (i*110,0) withcolor "darkred" withpen pencircle scaled 5  ;
+endfor ;
+currentpicture := currentpicture xsized TextWidth ;
+\stopMPcode
+\stopbuffer
+
+Here is another example of usage. Watch how \type {&&&} doesn't influence an
+already closed curve.
+
+\typebuffer
+
+\startlinecorrection \getbuffer \stoplinecorrection
+
+The paths are, here shown with less precision:
+
+\starttyping
+(0,0) .. controls (33.33,0) and (66.67,-0)
+.. (100,0) .. controls (100,33.33) and (100,66.67)
+.. (100,100) .. controls (66.67,66.67) and (33.33,33.33)
+.. (0,0) .. controls (0,0) and (0,0)
+.. (0,0) .. controls (0,0) and (0,0)
+.. cycle
+
+(0,0) .. controls (33.33,0) and (66.67,-0)
+.. (100,0) .. controls (100,33.33) and (100,66.67)
+.. (100,100) .. controls (66.67,66.67) and (33.33,33.33)
+.. cycle
+
+(0,0) {begin} .. controls (33.33,0) and (66.67,-0)
+.. (100,0) .. controls (100,33.33) and (100,66.67)
+.. (100,100) .. controls (66.67,66.67) and (33.33,33.33)
+.. (0,0) {end} .. controls (0,0) and (0,0) % duplicate {end} is
+.. (0,0) {end} .. controls (0,0) and (0,0) % sort of an error
+.. cycle
+
+(100,100) .. controls (33.33,0) and (66.67,-0)
+.. (100,0) .. controls (100,33.33) and (100,66.67)
+.. cycle
+
+(0,0) {begin} .. controls (33.33,0) and (66.67,-0)
+.. (100,0) .. controls (100,33.33) and (100,66.67)
+.. (100,100) {end} .. controls (0,0) and (100,100)
+.. cycle
+\stoptyping
+
+These somewhat complicated rules also relate to the intended application: the
+backend can apply \type {fill} or \type {eofill} in which case also cycles are
+involved as the following examples demonstrate:
+
+\startbuffer
+\startMPdefinitions
+path p, q, r ;
+p := fullcircle ;
+q := reverse fullcircle ;
+r := fullcircle shifted (1/2,0) ;
+vardef Example(expr p) =
+    image (
+        eofill p scaled 4cm withcolor "middlegray" ;
+        drawpathonly p scaled 4cm ;
+    )
+enddef ;
+\stopMPdefinitions
+\stopbuffer
+
+\typebuffer[option=TEX] \getbuffer
+
+\startbuffer
+\startMPcode
+    draw Example(p &&&           q &&& cycle) ;
+    draw Example(p &&& cycle &&& q &&& cycle) shifted (8cm,0) ;
+\stopMPcode
+\stopbuffer
+
+\typebuffer[option=TEX] \startlinecorrection \getbuffer \stoplinecorrection
+
+\startbuffer
+\startMPcode
+    draw Example(p &&&           r &&& cycle) ;
+    draw Example(p &&& cycle &&& r &&& cycle) shifted (8cm,0) ;
+\stopMPcode
+\stopbuffer
+
+\typebuffer[option=TEX] \startlinecorrection \getbuffer \stoplinecorrection
+
+\startbuffer
+\startMPcode
+    draw Example(p &&&&            q &&&& cycle) ;
+    draw Example(p &&&& cycle &&&& q &&&& cycle) shifted (8cm,0) ;
+\stopMPcode
+\stopbuffer
+
+\typebuffer[option=TEX] \startlinecorrection \getbuffer \stoplinecorrection
+
+\startbuffer
+\startMPcode
+    draw Example(p &&&&            r &&&& cycle) ;
+    draw Example(p &&&& cycle &&&& r &&&& cycle) shifted (8cm,0) ;
+\stopMPcode
+\stopbuffer
+
+\typebuffer[option=TEX] \startlinecorrection \getbuffer \stoplinecorrection
+
+\stopsection
+
+\startsection[title=Implicit points]
+
+In the \METAPOST\ library that comes with \LUAMETATEX\ we have a few extensions
+that relate to paths. You might wonder why we need these but some relate to the
+fact that paths can be generated programmatically. A prominent operator (or
+separator) is \type {..} and contrary to what one might expect the frequently
+used \type {--} is a macro:
+
+\starttyping[option=MP]
+def -- = { curl 1 } .. { curl 1 } enddef ;
+\stoptyping
+
+This involves interpreting nine tokens as part of expanding the macro and in
+practice that is fast even for huge paths. Nevertheless we now have a \type {--}
+primitive that involves less interpreting and also avoids some intermediate
+memory allocation of numbers. Of course you can still define it as macro.
+
+When you look at \POSTSCRIPT\ you'll notice that it has operators for relative
+and absolute positioning in the horizontal, vertical or combined direction. In
+\LUAMETATEX\ we now have similar operators that we will demonstrate with a few
+examples.
+
+\startbuffer
+\startMPcode
+drawarrow origin
+    -- xrelative  300
+    -- yrelative   20
+    -- xrelative -300
+    -- cycle
+withpen pencircle scaled 2
+withcolor "darkred" ;
+\stopMPcode
+\stopbuffer
+
+\typebuffer[option=TEX] \startlinecorrection \getbuffer \stoplinecorrection
+
+In the next example we show a relative position combined with an absolute and we
+define them as macros. You basically gets what goes under the name \quote {turtle
+graphics}:
+
+\startbuffer
+\startMPcode
+save h ; def h = -- xrelative enddef ;
+save v ; def v = -- yabsolute enddef ;
+
+drawarrow origin
+    h 30 v 20 h 30 v 30
+    h 30 v 10 h 30 v 50
+    h 30 v 60 h 30 v 10
+withpen pencircle scaled 2
+withcolor "darkred" ;
+\stopMPcode
+\stopbuffer
+
+\typebuffer[option=TEX] \startlinecorrection \getbuffer \stoplinecorrection
+
+When you provide a pair to \type {xabsolute} or \type {yabsolute}, the xpart is
+the (relative) advance and the second the absolute coordinate.
+
+\startbuffer
+\startMPcode
+draw origin
+    -- yabsolute(10,30)
+    -- yabsolute(20,20)
+    -- yabsolute(30,10)
+    -- yabsolute(40,20)
+    -- yabsolute(50,30)
+    -- yabsolute(60,20)
+    -- yabsolute(70,10)
+    -- yabsolute(80,20)
+    -- yabsolute(90,30)
+withpen pencircle scaled 2
+withcolor "darkred" ;
+\stopMPcode
+\stopbuffer
+
+\typebuffer[option=TEX] \startlinecorrection \getbuffer \stoplinecorrection
+
+The \type {xyabsolute} is sort of redundant and is equivalent to just a pair, but
+maybe there is a use for it. When the two coordinates are the same you can use
+a numeric.
+
+\startbuffer
+\startMPcode
+draw origin
+    -- xyabsolute(10, 10) % -- xyabsolute 10
+    -- xyabsolute(20, 10)
+    -- xyabsolute(30,-10)
+    -- xyabsolute(40,-10)
+    -- xyabsolute(50, 10)
+    -- xyabsolute(60, 10)
+    -- xyabsolute(70,-10)
+    -- xyabsolute(80,-10)
+withpen pencircle scaled 2
+withcolor "darkred" ;
+\stopMPcode
+\stopbuffer
+
+\typebuffer[option=TEX] \startlinecorrection \getbuffer \stoplinecorrection
+
+The relative variant also can take a pair and numeric, as in:
+
+\startbuffer
+\startMPcode
+draw origin
+    -- xyrelative 10
+    -- xyrelative 10
+    -- xyrelative(10,-10)
+    -- xyrelative(10,-10)
+    -- xyrelative 10
+    -- xyrelative 10
+    -- xyrelative(10,-10)
+    -- xyrelative(10,-10)
+withpen pencircle scaled 2
+withcolor "darkred" ;
+\stopMPcode
+\stopbuffer
+
+\typebuffer[option=TEX] \startlinecorrection \getbuffer \stoplinecorrection
+
+In these examples we used \type {--} but you can mix in \type {..} and
+control point related operations, although the later is somewhat less
+intuitive here.
+
+\startbuffer
+\startMPcode
+draw   yabsolute(10,30)
+    .. yabsolute(20,20)
+    .. yabsolute(10,10)
+    .. yabsolute(20,20)
+    .. yabsolute(10,30)
+    .. yabsolute(20,20)
+    .. yabsolute(10,10)
+    .. yabsolute(20,20)
+    .. yabsolute(10,30)
+withpen pencircle scaled 2
+withcolor "darkred" ;
+\stopMPcode
+\stopbuffer
+
+\typebuffer[option=TEX] \startlinecorrection \getbuffer \stoplinecorrection
+
+And with most features, users will likely find a use for it:
+
+\startbuffer
+\startMPcode
+draw for i=1 upto 5 :
+    yabsolute(10,30) ---
+    yabsolute(20,20) ...
+    yabsolute(10,10) ---
+    yabsolute(20,20) ...
+endfor nocycle
+withpen pencircle scaled 2
+withcolor "darkred" ;
+\stopMPcode
+\stopbuffer
+
+\typebuffer[option=TEX] \startlinecorrection \getbuffer \stoplinecorrection
+
+Here is a more impressive example, the result is shown in \in {figure}
+[fig:r-a-paths]:
+
+\startbuffer
+\startMPcode
+for n=10 upto 40 :
+    path p ; p := (
+        for i = 0 step pi/n until pi :
+            yabsolute(cos(i)^2-sin(i)^2,sin(i)^2-cos(i)^2) --
+        endfor cycle
+    ) ;
+    draw p
+        withpen pencircle scaled 1/20
+        withcolor "darkred" withtransparency (1,.25) ;
+endfor ;
+currentpicture := currentpicture xysized (TextWidth,.25TextWidth) ;
+\stopMPcode
+\stopbuffer
+
+\typebuffer[option=TEX]
+
+\startplacefigure[title=Combined relative x and absolute y positioning,ref=fig:r-a-paths]
+    \getbuffer
+\stopplacefigure
+
+\stopsection
+
+\startsection[title=Control points]
+
+Most users will create paths by using \type {..}, \type {...}, \type {--} and
+\type {---} and accept what they get by the looks. If your expectations are more
+strict you might use \type {tension} or \type {curl} with directions and vectors
+for the so called control points between connections. In \in {figure}
+[fig:controlpoints] you see not only \type {controls} in action but also two
+operators that can be used to set the first and second control point. For the
+record: if you use \type {controls} without \type {and} the singular pair will
+be used for both control points.
+
+\startbuffer
+\startMPcode
+path p, q, r, s ;
+
+p = origin {dir 25} .. (80,0) ..      controls ( 80, 0) and (100,40) .. (140,30) .. {dir 0} (180,0) ;
+q = origin {dir 25} .. (80,0) ..      controls (100,40) and (140,30) .. (140,30) .. {dir 0} (180,0) ;
+r = origin {dir 25} .. (80,0) .. secondcontrol              (100,40) .. (140,30) .. {dir 0} (180,0) ;
+s = origin {dir 25} .. (80,0) ..  firstcontrol (100,40)              .. (140,30) .. {dir 0} (180,0) ;
+
+def Example(expr p, t, c) =
+    draw p ;
+    drawpoints p withcolor "middlegray" ;
+    drawcontrollines p withpen pencircle scaled .3 withcolor c ;
+    drawcontrolpoints p withpen pencircle scaled 2  withcolor c ;
+    label.lft("\smallinfofont current", point 1 of p) ;
+    label.top("\smallinfofont next", point 2 of p) ;
+    draw thetextext.rt("\infofont path " & t, (point 3 of p) shifted (5,0)) ;
+enddef ;
+
+draw image (
+    Example(p, "p", "darkred")  ; currentpicture := currentpicture yshifted 50 ;
+    Example(q, "q", "darkblue") ; currentpicture := currentpicture yshifted 50 ;
+    Example(r, "r", "darkred")  ; currentpicture := currentpicture yshifted 50 ;
+    Example(s, "s", "darkblue") ; currentpicture := currentpicture yshifted 50 ;
+) xsized TextWidth ;
+\stopMPcode
+\stopbuffer
+
+\typebuffer[option=TEX]
+
+% This picture was made by Mikael when we tested these new commands.
+
+\startplacefigure[title={Three ways to set the control points.},reference=fig:controlpoints]
+    \getbuffer
+\stopplacefigure
+
+\stopsection
+
+\startsection[title=Arcs]
+
+In \POSTSCRIPT\ and \SVG\ we have an arc command but not in \METAPOST. In \LMTX\
+we provide a macro that does something similar:
+
+\startbuffer
+\startMPcode
+draw
+    (0,0) --
+    (arc(0,180) scaled 30 shifted (0,30)) --
+    cycle
+withpen pencircle scaled 2
+withcolor "darkred" ;
+\stopMPcode
+\stopbuffer
+
+\typebuffer[option=TEX]
+
+The result is not spectacular:
+
+\startlinecorrection \getbuffer \stoplinecorrection
+
+Instead of a primitive with five arguments and the prescribed line drawn from the
+current point to the beginning of the arc we just use \type {..}, \type{scaled}
+for the radius, and \type {shifted} for the origin. It actually permits more
+advanced trickery.
+
+\startbuffer
+\startMPcode
+draw
+    (0,0) ..
+    (arc(30,240) xscaled 60 yscaled 30 shifted (0,30)) ..
+    cycle
+withpen pencircle scaled 2
+withcolor "darkred" ;
+\stopMPcode
+\stopbuffer
+
+\typebuffer[option=TEX]
+
+Here time we get smooth connections:
+
+\startlinecorrection \getbuffer \stoplinecorrection
+
+but because we scale differently also a different kind of arc: it is no longer a
+circle segment, which is often the intended use of arc.
+
+\stopsection
+
+\startsection[title=Loops]
+
+The \METAPOST\ program is a follow up on \METAFONT, which primary target was to
+design fonts. The paths that make op glyphs are often not that large and because
+in most cases we don't know in advance how large a path is they are implemented
+as linked lists. Now consider a large paths, with say 500 knots. The following
+assignment:
+
+\starttyping[option=MP]
+pair a ; a := point 359 of p ;
+\stoptyping
+
+has to jump across 358 knots before it reaches the requested point. Let's take an
+example of drawing a function by (naively) stepping over values:
+
+\startbuffer
+\startMPcode
+path p ; p := for i=0 step 4pi/500 until 4pi: (i,sin(i)) -- endfor nocycle ;
+p := p xysized(TextWidth,2cm) ;
+draw p ;
+\stopMPcode
+\stopbuffer
+
+\typebuffer[option=TEX]
+
+\startlinecorrection \getbuffer \stoplinecorrection
+
+\startbuffer
+\startMPcode
+draw p ; for i=0 step 5 until length(p) :
+    drawdot point i of p withpen pencircle scaled 2 ;
+endfor ;
+\stopMPcode
+\stopbuffer
+
+Of course we can just calculate the point directly but here we just
+want to illustrate a problem.
+
+\typebuffer[option=TEX]
+
+% \startlinecorrection \getbuffer \stoplinecorrection
+
+For 500 points, on a modern computer running over the list is rather fast
+but when we are talking 5000 points is gets noticeable, and given what
+\METAPOST\ is used for, having many complex graphics calculated at runtime
+can have some impact on runtime.
+
+% \startlinecorrection \getbuffer \stoplinecorrection
+
+Of course we can just calculate the point directly but here we just
+want to illustrate a problem. Where the previous loop takes 0.002
+seconds, the second loop needs 0.001 seconds:
+
+\startbuffer
+\startMPcode
+pair p ; for i within p :
+   if i mod 5 == 0 :
+       drawdot pathpoint withpen pencircle scaled 2 ;
+   fi ;
+endfor ;
+\stopMPcode
+\stopbuffer
+
+\typebuffer[option=TEX]
+
+% \startlinecorrection \getbuffer \stoplinecorrection
+
+These numbers are for assigning the point to a pair variable so that we don't
+take into account the extra drawing (and backend) overhead. The difference in
+runtime can be neglected but what if we go to 5000 points? Not unsurprisingly we
+go down from 0.142 seconds to 0.004 seconds. There are plenty examples where
+runtime can be impacted, for instance when one first takes the \typ {xpart point
+i} and then the \typ {ypart point i}.
+
+One motivation for adding a more efficient loop for paths is that in generative
+art one has such long parts and drawing that took tens of minutes or more now can
+be generated in seconds. Another motivation is in analyzing and manipulating
+paths. In that case we also need access to the control points and maybe even
+preceding or succeeding points. In \in {figure} [fig:withinpath] we show the
+output of the following code:
+
+\startbuffer
+\startMPcode
+path p ; p := fullcircle scaled 10cm ;
+fill p withcolor "darkred" ;
+draw p withpen pencircle scaled 1mm withcolor "middleblue" ;
+
+for i within p :
+    draw pathpoint       withpen pencircle scaled 4mm withcolor "middlegray" ;
+    draw pathprecontrol  withpen pencircle scaled 2mm withcolor "middlegreen" ;
+    draw pathpostcontrol withpen pencircle scaled 2mm withcolor "middlegreen" ;
+    draw textext("\ttbf" & decimal i) shifted .6[deltapoint -2,origin] withcolor white ;
+    draw textext("\ttbf" & decimal i) shifted .4[pathpoint    ,origin] withcolor white ;
+    draw textext("\ttbf" & decimal i) shifted .2[deltapoint  2,origin] withcolor white ;
+endfor ;
+\stopMPcode
+\stopbuffer
+
+\typebuffer[option=TEX]
+
+The \METAPOST\ library in \LUAMETATEX\ uses double linked lists for paths so going
+back and forward is a rather cheap operation.
+
+\startplacefigure[title={Fast looping over paths.},reference=fig:withinpath]
+    \getbuffer
+\stopplacefigure
+
+A nice application of this feature is the following, where we use yet another
+point property, \typ {pathdirection}:
+
+\starttyping[option=MP]
+vardef dashing (expr pth, shp, stp) =
+    for i within arcpointlist stp of pth :
+        shp
+            rotated angle(pathdirection)
+            shifted pathpoint
+        &&
+    endfor nocycle
+enddef ;
+\stoptyping
+
+With:
+
+\startbuffer
+\startMPcode
+path p ; p := unitsquare xysized (TextWidth,1cm) ;
+draw p withpen pencircle scaled .2mm withcolor darkblue ;
+fill dashing (p, triangle scaled 1mm, 100) && cycle withcolor "darkred" ;
+\stopMPcode
+\stopbuffer
+
+\typebuffer[option=TEX]
+
+we get:
+
+\startlinecorrection
+\getbuffer
+\stoplinecorrection
+
+It is worth noticing that the path returned by dashing is actually a combined
+path where the pen gets lifted between the subpaths. This is what the \type {&&}
+does. The \type {nocycle} is there to intercept the last \quote {connector} (which
+of course could also have been a \type {--} or \type {..}. So we end up with an
+open path, which why in case of a fill we need to close it by \type {cycle}.
+In the next example we show all the accessors:
+
+\startbuffer
+\startMPcode[instance=scaledfun]
+path p; p := (fullsquare scaled 3 && fullsquare rotated 45 scaled 2 && cycle) ;
+
+for i within p :
+    message(
+            "index "       & decimal  pathindex
+        & ", lastindex "   & decimal  pathlastindex
+        & ", length "      & decimal  pathlength
+        & ", first "       & if       pathfirst : "true" else : "false" fi
+        & ", last "        & if       pathlast  : "true" else : "false" fi
+        & ", state "       & decimal  pathstate % end/begin subpath
+        & ", point "       & ddecimal pathpoint
+        & ", postcontrol " & ddecimal pathprecontrol
+        & ", precontrol "  & ddecimal pathpostcontrol
+        & ", direction "   & ddecimal pathdirection
+        & ", delta "       & ddecimal deltapoint 1
+    );
+endfor ;
+
+eofill p xysized (TextWidth, 2cm) withcolor "darkred" ;
+\stopMPcode
+\stopbuffer
+
+\typebuffer[option=TEX]
+
+If you want to see the messages you need to process it yourself, but this is how the
+ten point shape looks like:
+
+\startlinecorrection \getbuffer \stoplinecorrection
+
+\stopsection
+
+\startsection[title=Randomized paths]
+
+When randomizing a path the points move and when such a path has to bound a specific
+areas that can result in overlap which what is bounded.
+
+\startbuffer
+\startMPcode
+path p ; p := fullsquare xyscaled (10cm,2cm) ;
+fill p withcolor "darkred" ;
+draw p randomized 3mm withpen pencircle scaled 1mm withcolor "middlegray";
+setbounds currentpicture to p ;
+\stopMPcode
+\stopbuffer
+
+\typebuffer[option=TEX]
+
+\startlinecorrection \getbuffer \stoplinecorrection
+
+Here are two variants that randomize a path but keep the points where they
+are. They might be better suited for cases where there is text within the
+area.
+
+\startbuffer
+\startMPcode
+path p ; p := fullsquare xyscaled (10cm,2cm) ;
+fill p withcolor "darkblue" ;
+draw p randomizedcontrols 3mm withpen pencircle scaled 1mm withcolor "middlegray";
+setbounds currentpicture to p ;
+\stopMPcode
+\stopbuffer
+
+\typebuffer[option=TEX]
+
+\startlinecorrection \getbuffer \stoplinecorrection
+
+\startbuffer
+\startMPcode
+path p ; p := fullsquare xyscaled (10cm,2cm) ;
+fill p withcolor "darkyellow" ;
+draw p randomrotatedcontrols 15 withpen pencircle scaled 1mm withcolor "middlegray";
+setbounds currentpicture to p ;
+\stopMPcode
+\stopbuffer
+
+\typebuffer[option=TEX]
+
+\startlinecorrection \getbuffer \stoplinecorrection
+
+\stopsection
+
+\startsection[title=Connecting]
+
+In \LUAMETATEX\ the \type {--} operator is a primitive, like \type {..} and when
+exploring this we came up with this example that demonstrates the difference
+with (still a macro ) \type {---}.
+
+\startbuffer
+\startMPcode
+path p[] ;
+p[1] = origin --  (100, 0) ..  (75, 50) ..  (50, 100) ..  (25, 50) ..  cycle ;
+p[2] = origin --- (100, 0) ..  (75, 50) ..  (50, 100) ..  (25, 50) ..  cycle ;
+p[3] = origin --  (100, 0) ... (75, 50) ... (50, 100) ... (25, 50) ... cycle ;
+p[4] = origin --- (100, 0) ... (75, 50) ... (50, 100) ... (25, 50) ... cycle ;
+
+draw p[1] withpen pencircle scaled 3bp withcolor "darkblue" ;
+draw p[2] withpen pencircle scaled 2bp withcolor "darkyellow" ;
+drawpoints p[1] withpen pencircle scaled 3bp withcolor darkred ;
+
+draw image (
+    draw p[1] withpen pencircle scaled 4bp withcolor "darkblue" ;
+    draw p[2] withpen pencircle scaled 3bp withcolor "darkyellow" ;
+    draw p[3] withpen pencircle scaled 2bp withcolor "darkred" ;
+    draw p[4] withpen pencircle scaled 1bp withcolor "darkgreen" ;
+) shifted (150,0) ;
+\stopMPcode
+\stopbuffer
+
+\typebuffer[option=TEX]
+
+Where \type {...} makes a more tight curve, \type {---} has consequences for the
+way a curve gets connected to a straight line segment.
+
+\startlinecorrection \getbuffer \stoplinecorrection
+
+\stopsection
+
+\startsection[title=Curvature]
+
+Internally \METAPOST\ only has curves but when a path is output it makes sense to
+use lines when possible. The \CONTEXT\ backend takes care of that (and further optimizations)
+but you can check yourself too.
+
+\startbuffer
+\startMPcode
+def Test(expr p, c) =
+    draw
+        p
+        withpen pencircle scaled 2mm
+        withcolor c ;
+    draw
+        textext("\bf " & if not (subpath(2,3) of p hascurvature 0.02) : "not" else : "" fi & " curved" )
+        shifted center p ;
+enddef ;
+
+Test(fullcircle scaled 3cm shifted (0cm,0),"darkred");
+Test(fullsquare scaled 3cm shifted (4cm,0),"darkblue");
+Test(fullsquare scaled 3cm shifted (8cm,0) randomizedcontrols 1cm,"darkgreen");
+\stopMPcode
+\stopbuffer
+
+\typebuffer[option=TEX]
+
+The \typ {hascurvature} macro is a primary and applies a curvature criterium to a
+(sub)path. The default tolerance in the backend is \im {131/65536} or \im
+{\luaexpr[.5N]{131/65536}}. The same default is used for eliminating points that \quote
+{are the same}.
+
+\startlinecorrection \getbuffer \stoplinecorrection
+
+In the rare case that the backend decides for straight lines while actually
+there is a curve, you can use \typ {withcurvature 1} to bypass the check.
+
+\stopsection
+
+\startsection[title=Joining paths]
+
+Say that you have three paths:
+
+\starttyping[option=TEX]
+path p[] ;
+p[1] := (0,0) -- (100,0) ;
+p[2] := (101,0) -- (100,100) ;
+p[3] := (100,101) ;
+\stoptyping
+
+If you join these with:
+
+\starttyping[option=TEX]
+draw p[1] & p[2] & p[3] -- cycle ;
+\stoptyping
+
+You will get an error message telling that the paths don't have common points so
+that they can't be joined. This can be a problem when your snippets are the result
+of cutting up a path. In practice the difference between the to be joined coordinates is
+small, so we provide a way to get around this problem:
+
+\startbuffer
+\startMPcode
+    interim jointolerance := 5eps ;
+    draw (0,0) -- (100,0) & (100+4eps,0) -- (100,20) & (100,20+2eps) -- cycle
+        withpen pencircle scaled 2 withcolor "darkred" ;
+\stopMPcode
+\stopbuffer
+
+\typebuffer[option=TEX]
+
+Up to the tolerance is accepted as difference in either direction, so indeed we get
+a valid result:
+
+\startlinecorrection \getbuffer \stoplinecorrection
+
+\startbuffer
+\startMPcode
+    interim jointolerance := 20 ;
+    draw (0,0) -- (100,0) & (110,10) -- (100,40) & (100,50) -- cycle
+        withpen pencircle scaled 2 withcolor "darkred" ;
+\stopMPcode
+\stopbuffer
+
+Larger values can give a more noticeable side effect:
+
+\typebuffer[option=TEX]
+
+It all depends on your need it this is considered okay:
+
+\startlinecorrection \getbuffer \stoplinecorrection
+
+As with everything \TEX\ and \METAPOST, once you see what is possible it can be
+abused:
+
+\startbuffer
+\startMPcode
+    interim jointolerance := 20 ;
+    randomseed := 10 ;
+    draw for i=1 upto 200 :
+       (i,50 randomized 10) --
+    endfor nocycle
+        withpen pencircle scaled .1 ;
+    randomseed := 10 ;
+    draw for i=1 upto 200 :
+        (i,50 randomized 10) if odd i : & else : -- fi
+    endfor nocycle
+        withcolor "darkred" ;
+\stopMPcode
+\stopbuffer
+
+\typebuffer[option=TEX]
+
+We leave it up to the reader to decide how the red line can be interpreted.
+
+\startlinecorrection \scale[width=\textwidth]{\getbuffer} \stoplinecorrection
+
+Here is another nice example:
+
+\startbuffer
+\startMPcode
+    path p[] ;
+    p[1] := origin -- (100,50) ;
+    p[2] := (200,50) -- (300,0) ;
+    draw p[1] && p[2] withpen pencircle scaled 4 withcolor darkgreen ;
+    draw p[1] -- p[2] withpen pencircle scaled 2 withcolor "orange" ;
+    interim jointolerance := 100 ;
+    draw p[1] & p[2]  withpen pencircle scaled 1 withcolor darkblue ;
+\stopMPcode
+\stopbuffer
+
+\typebuffer[option=TEX]
+
+Watch how we get a curve:
+
+\startlinecorrection \getbuffer \stoplinecorrection
+
+\stopsection
+
+\stopchapter
+
+\stopcomponent


Property changes on: trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametafun/luametafun-paths.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametafun/luametafun-poisson.tex
===================================================================
--- trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametafun/luametafun-poisson.tex	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametafun/luametafun-poisson.tex	2025-02-19 22:48:50 UTC (rev 74156)
@@ -6,7 +6,6 @@
 
 \startchapter[title={Poisson}]
 
-
 When, after a post on the \CONTEXT\ mailing list, Aditya pointed me to an article
 on mazes I ended up at poisson distributions which to me looks nicer than what I
 normally do, fill a grid and then randomize the resulting positions. With some

Added: trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametafun/luametafun-potrace.tex
===================================================================
--- trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametafun/luametafun-potrace.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametafun/luametafun-potrace.tex	2025-02-19 22:48:50 UTC (rev 74156)
@@ -0,0 +1,317 @@
+% language=us runpath=texruns:manuals/luametafun
+
+\environment luametafun-style
+
+\startcomponent luametafun-potrace
+
+\startchapter[title={Potrace}]
+
+\startsection[title=Introduction]
+
+The potrace connection targets at bitmaps. You can think of logos that only exist
+as bitmaps while outlines are preferred, but in this case we actually think more
+of bitmaps that the user lays out. In order to give an impression what we are
+talking about I give three simple examples:
+
+\startbuffer[potraced]
+01111111111111111111111111111100
+11000000000000000000000000000110
+11000000000000000000000000000011
+11000000000000000000000000000011
+11000000000000000000000000000011
+01100000000000000000000000000011
+00111111111111111111111111111110
+\stopbuffer
+
+\savebuffer[list=potraced,file=potraced.txt,prefix=no]
+
+\startbuffer[1]
+\startMPcode
+    fill
+        lmt_potraced [ bytes =
+            "01111111111111111111111111111100
+             11000000000000000000000000000110
+             11000000000000000000000000000011
+             11000000000000000000000000000011
+             11000000000000000000000000000011
+             01100000000000000000000000000011
+             00111111111111111111111111111110",
+        ] ysized 1cm
+        withcolor "darkblue"
+        withpen pencircle scaled 1 ;
+\stopMPcode
+\stopbuffer
+
+\startbuffer[2]
+\startMPcode
+    fill
+        lmt_potraced [
+            filename = "potraced.txt",
+        ] ysized 1cm
+        withcolor "darkgreen"
+        withpen pencircle scaled 1 ;
+\stopMPcode
+\stopbuffer
+
+\startbuffer[3]
+\startMPcode
+    fill
+        lmt_potraced [
+            buffer = "potraced",
+        ] ysized 1cm
+        withcolor "darkred"
+        withpen pencircle scaled 1 ;
+\stopMPcode
+\stopbuffer
+
+\startlinecorrection
+\startcombination[nx=3,ny=1]
+    {\getbuffer[1]} {\type {bytes}}
+    {\getbuffer[2]} {\type {buffer}}
+    {\getbuffer[3]} {\type {filename}}
+\stopcombination
+\stoplinecorrection
+
+Here we vectorize bitmaps with Peter Selingers potrace library, that we built in
+\LUAMETATEX. We can directly feed bytes in a \METAFUN\ blob:
+
+\typebuffer[1][option=TEX]
+
+But we can also go via a file that has the same data:
+
+\typebuffer[2][option=TEX]
+
+Of course we can also use buffers:
+
+\typebuffer[3][option=TEX]
+
+You feed a bitmap specification and get back a \METAPOST\ path, likely multiple
+subpaths sewed together. You can of course draw and fill that path, or store it
+in a path variable and then do both.
+
+In the following sections we will explore the various options and some tricks.
+The main message in this section is that you need to look at bitmaps with
+vectorized eyes because that is what you get in the end: a vector representation.
+
+\stopsection
+
+\startsection[title=Functions]
+
+{\em todo}
+
+\stopsection
+
+\startsection[title=Icons]
+
+When Mikael Sundqvist and I were playing with potrace in \METAFUN\ his girls came
+up with this pattern.
+
+\startbuffer
+\startMPcode
+fill
+    lmt_potraced [ bytes =
+        "001111100
+         010000010
+         100000001
+         101101101
+         100000001
+         101000101
+         100111001
+         010000010
+         001111100",
+         size = 1,
+    ] xysized (3cm,3cm)
+    withcolor "middleorange" ;
+\stopMPcode
+\stopbuffer
+
+\typebuffer[option=TEX]
+
+This produces the following icon. The somewhat asymmetrical shape gives it a
+charm, and it is surprising how little code is needed. This picture inspired
+Willi Egger to make a ten by ten composition gadget for the attendants of the
+2023 \CONTEXT\ meeting that was used in a tutorial.
+
+\startlinecorrection \getbuffer \stoplinecorrection
+
+We use this to demonstrate a few more features of the interface:
+
+\startbuffer
+\startMPcode
+draw
+    lmt_potraced [ bytes =
+        "..11111..
+         .1.....1.
+         1.......1
+         1.11.11.1
+         1.......1
+         1.1...1.1
+         1..111..1
+         .1.....1.
+         ..11111..",
+         polygon = true,
+         size = 1,
+    ] xysized (3cm,3cm)
+    withcolor "darkblue"
+    withpen pencircle scaled 1mm ;
+\stopMPcode
+\stopbuffer
+
+\typebuffer[option=TEX]
+
+This contour is actually accurate:
+
+\startlinecorrection \getbuffer \stoplinecorrection
+
+We can color some components:
+
+\startbuffer
+\startMPcode
+draw image (
+    lmt_startpotraced [ bytes =
+        "..11111..
+         .1.....1.
+         1.......1
+         1.22.22.1
+         1.......1
+         1.3...3.1
+         1..333..1
+         .1.....1.
+         ..11111.."
+    ] ;
+    fill lmt_potraced [ value = "1", size = 1 ]
+        withcolor "darkred" ;
+    fill lmt_potraced [ value = "3", size = 1 ]
+        withcolor "darkgreen" ;
+    fill lmt_potraced [ value = "2", size = 0 ]
+        withcolor "darkblue" ;
+    lmt_stoppotraced ;
+) xysized (3cm,3cm) ;
+\stopMPcode
+\stopbuffer
+
+\typebuffer[option=TEX]
+
+Of course there must be enough distinction (white space) between the
+shapes:
+
+\startlinecorrection \getbuffer \stoplinecorrection
+
+Again we show the polygons:
+
+\startbuffer
+\startMPcode
+draw image (
+    lmt_startpotraced [ bytes =
+        "..11111..
+         .1.....1.
+         1.......1
+         1.22.22.1
+         1.......1
+         1.3...3.1
+         1..333..1
+         .1.....1.
+         ..11111.."
+    ] ;
+    draw lmt_potraced [ value = "1", size = 1, polygon = true ]
+        withcolor "darkred" ;
+    draw lmt_potraced [ value = "3", size = 1, polygon = true ]
+        withcolor "darkgreen" ;
+    draw lmt_potraced [ value = "2", size = 0, polygon = true ]
+        withcolor "darkblue" ;
+    lmt_stoppotraced ;
+)
+    xysized (3cm,3cm)
+    withpen pencircle scaled 1mm ;
+\stopMPcode
+\stopbuffer
+
+\typebuffer[option=TEX]
+
+Gives:
+
+\startlinecorrection \getbuffer \stoplinecorrection
+
+We can do the same with data defined in \LUA:
+
+\startbuffer
+\startluacode
+io.savedata("temp.txt",[[
+..11111..
+.1.....1.
+1.......1
+1.22.22.1
+1.......1
+1.3...3.1
+1..333..1
+.1.....1.
+..11111..
+]])
+\stopluacode
+\stopbuffer
+
+\typebuffer[option=TEX]
+
+With:
+
+\startbuffer
+\startMPcode
+draw image (
+    lmt_startpotraced [ filename = "temp.txt" ] ;
+        fill lmt_potraced [ value = "1", size = 1 ]
+            withcolor "darkcyan" ;
+        fill lmt_potraced [ value = "3", size = 1 ]
+            withcolor "darkmagenta" ;
+        fill lmt_potraced [ value = "2", size = 0 ]
+            withcolor "darkyellow" ;
+    lmt_stoppotraced ;
+) xysized (3cm,3cm) ;
+\stopMPcode
+\stopbuffer
+
+\typebuffer[option=TEX]
+
+Indeed we get:
+
+\startlinecorrection \getbuffer \stoplinecorrection
+
+\stopsection
+
+\startsection[title=Fonts]
+
+{\em maybe}
+
+\stopsection
+
+\stopchapter
+
+\stopcomponent
+
+
+% border case with messy end point
+
+% \enabletrackers[potrace.results]
+%
+% \starttext
+%
+% \startMPpage
+%
+%     string s ; s := "
+% 000000004444040
+% 100000000004040
+%     ";
+%
+%     path p ;
+%     p := lmt_potraced [ bytes = s, threshold=2, optimize="yes", explode="yes", value = "4" ] ;
+%
+%     fill p withpen pencircle scaled 1.5 withcolor "darkred" ;
+%     draw p withpen pencircle scaled 1.5 withcolor "darkblue" ;
+%
+%     currentpicture := currentpicture xysized (100,100) ;
+%
+%     setbounds currentpicture to (boundingbox currentpicture) enlarged 200 ;
+%
+%     addbackground withcolor "darkgray" ;
+% \stopMPpage
+%
+% \stoptext


Property changes on: trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametafun/luametafun-potrace.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametafun/luametafun-shade.tex
===================================================================
--- trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametafun/luametafun-shade.tex	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametafun/luametafun-shade.tex	2025-02-19 22:48:50 UTC (rev 74156)
@@ -6,6 +6,14 @@
 
 \startchapter[title={Shade}]
 
+\startsection[title={Shading operators}]
+
+{\em see \METAFUN\ manual.}
+
+\stopsection
+
+\startsection[title={Shading interface.}]
+
 {\em This interface is still experimental!}
 
 Shading is complex. We go from one color to another on a continuum either linear
@@ -225,6 +233,85 @@
 \LL
 \stoptabulate
 
+\stopsection
+
+\startsection[title=Patterns]
+
+\setupexternalfigure[location={default,global,local}]
+
+Instead using a shade one can use a pattern which is basically a fill with a repeated
+image. Here are some examples:
+
+\startbuffer
+\startMPcode
+draw
+    (
+        (fulldiamond xscaled 8cm yscaled 5cm randomizedcontrols 10mm) && reverse
+        (fulldiamond xscaled 6cm yscaled 3cm randomizedcontrols 10mm) && cycle
+    )
+    withpattern image (fill fullcircle scaled 2mm withcolor "darkyellow" ;)
+;
+\stopMPcode
+\stopbuffer
+
+\typebuffer[option=TEX]
+
+The \type {image} macro produces a picture that is then used for the filling:
+
+\startlinecorrection \getbuffer \stoplinecorrection
+
+That image can also be an (external) figure:
+
+\startbuffer
+\startMPcode
+draw
+    (
+        (fullcircle xscaled 8cm yscaled 4cm randomizedcontrols 5mm) && reverse
+        (fullcircle xscaled 6cm yscaled 2cm randomizedcontrols 5mm) && cycle
+    )
+    withpattern image (draw figure "hacker.jpg" ;)
+    withpatternscale (1/10,1/20)
+;
+\stopMPcode
+\stopbuffer
+
+Of course one needs to find a suitable image for this, but here we just use one of
+the test figures:
+
+\startlinecorrection \getbuffer \stoplinecorrection
+
+\typebuffer[option=TEX]
+
+\stopsection
+
+\startsection[title=Luminance]
+
+{\em Todo: groups and such.}
+
+\stopsection
+
 \stopchapter
 
 \stopcomponent
+
+%    fill unittriangle rotated 90 xyscaled (200,100)
+%        withshademethod "linear"
+%        withshadecenteronefraction (0,1)
+%        withshadecentertwofraction (0,0)
+%        withshadestep (
+%            withshadefraction 0
+%            withshadecolors (green, green)
+%        )
+%        withshadestep (
+%            withshadefraction 0.75
+%            withshadecolors (blue, green)
+%        )
+%        withshadestep (
+%            withshadefraction 0.25
+%            withshadecolors (green, blue)
+%        )
+%        withshadestep (
+%            withshadefraction 1
+%            withshadecolors (green, red)
+%        )
+%     ;

Added: trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametafun/luametafun-synchronizers.tex
===================================================================
--- trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametafun/luametafun-synchronizers.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametafun/luametafun-synchronizers.tex	2025-02-19 22:48:50 UTC (rev 74156)
@@ -0,0 +1,127 @@
+% language=us runpath=texruns:manuals/luametafun
+
+\environment luametafun-style
+
+\startcomponent luametafun-synchronizers
+
+\startchapter[title={Synchronizers}]
+
+{Work in progress.} \blank
+
+
+\definesyncpositions[1]
+\definesyncpositions[2]
+
+% \startuseMPgraphic{sync1}
+%     StartPage ;
+%         lmt_synchronizer [
+%             index      = 1,
+%             hoffset    = 0,
+%             width      = BackSpace - LeftMarginDistance,
+%             extend     = false,
+%             prune      = true,
+%             draw       = false,
+%             fill       = true,
+%         ] ;
+%       clip currentpicture to Page ;
+%       setbounds currentpicture to Page ;
+%     StopPage ;
+% \stopuseMPgraphic
+
+% \startuseMPgraphic{sync1}
+%     lmt_synchronizer [
+%       % page       = "yes",
+%         index      = 1,
+%         hoffset    = 0,
+%         width      = BackSpace - LeftMarginDistance,
+%         extend     = false,
+%         prune      = true,
+%         draw       = false,
+%         fill       = true,
+%     ] ;
+% \stopuseMPgraphic
+
+% \definecolor[redshade]    [.5(darkred,white)]
+% \definecolor[greenshade]  [.5(darkgreen,white)]
+% \definecolor[blueshade]   [.5(darkblue,white)]
+% \definecolor[yellowshade] [.5(darkyellow,white)]
+
+% \startuseMPgraphic{sync1}
+%     lmt_synchronizer [
+%       % page       = "yes",
+%         index      = 1,
+%         hoffset    = 0,
+%         width      = BackSpace - LeftMarginDistance,
+%         extend     = false,
+%         prune      = true,
+%         draw       = false,
+%         fill       = true,
+%         colors     = { "redshade", "greenshade", "blueshade", "yellowshade" }
+%     ] ;
+% \stopuseMPgraphic
+
+\startuseMPgraphic{sync2}
+    lmt_synchronizer [
+        index   = 2,
+        region  = OverlayRegion,
+        hoffset = -1cm,
+        width   = 1cm,
+        extend  = true,
+        prune   = false,
+        draw    = false,
+        fill    = true,
+    ] ;
+    clip currentpicture to OverlayBox leftenlarged 1cm;
+    setbounds currentpicture to OverlayBox ;
+\stopuseMPgraphic
+
+\defineoverlay[tempoverlay1][\useMPgraphic{sync1}]
+\defineoverlay[tempoverlay2][\useMPgraphic{sync2}]
+
+% \setupbackgrounds[page][background=tempoverlay1]
+
+\startlinecorrection
+\framed
+    [region=yes,background=tempoverlay2,width=14cm,align=normal]
+    \bgroup
+        \syncposition[2][1]\samplefile{ward}\endgraf
+        \syncposition[2][2]\samplefile{ward}\endgraf
+        \syncposition[2][3]\samplefile{ward}\endgraf
+    \egroup
+\stoplinecorrection
+
+% \vskip1cm \hskip1cm \framed[region=yes,background=tempoverlay2,width=16cm,align=normal]{%
+%     \syncposition[2][1]\samplefile{ward}\endgraf
+%     \syncposition[2][2]\samplefile{ward}\endgraf
+%     \syncposition[2][3]\samplefile{ward}\endgraf
+% }
+
+% \vskip1cm \hskip1cm \framed[region=yes,background=tempoverlay2,width=10cm,align=normal]{%
+%     \syncposition[2][1]\samplefile{ward}\endgraf
+%     \syncposition[2][2]\samplefile{ward}\endgraf
+%     \syncposition[2][3]\samplefile{ward}\endgraf
+% }
+
+% \dorecurse {100} {
+% \dorecurse {1} {
+%     \startchapter[title={Test #1}]
+%         \syncposition[1][1,reset]\dorecurse{20}{\samplefile{ward}\endgraf}
+%         \syncposition[1][2]\dorecurse {4}{\samplefile{ward}\endgraf}
+%         \syncposition[1][3]\dorecurse {7}{\samplefile{ward}\endgraf}
+%         \syncposition[1][4]\dorecurse {3}{\samplefile{ward}\endgraf}
+%     \stopchapter
+% }
+
+% \dorecurse {100} {
+% \dorecurse {1} {
+%     \startchapter[title={Test #1}]
+%         \syncposition[1][1]\dorecurse{1}{\samplefile{ward}\endgraf}
+%         \syncposition[1][2]\dorecurse{1}{\samplefile{ward}\endgraf}
+%         \syncposition[1][3]\dorecurse{1}{\samplefile{ward}\endgraf}
+%         \syncposition[1][4]\dorecurse{1}{\samplefile{ward}\endgraf}
+%     \stopchapter
+% }
+
+\stopchapter
+
+\stopcomponent


Property changes on: trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametafun/luametafun-synchronizers.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametafun/luametafun-text.tex
===================================================================
--- trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametafun/luametafun-text.tex	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametafun/luametafun-text.tex	2025-02-19 22:48:50 UTC (rev 74156)
@@ -6,6 +6,8 @@
 
 \startchapter[title={Text}]
 
+\startsection[title={Typesetting text}]
+
 The \METAFUN\ \type {textext} command normally can do the job of typesetting a
 text snippet quite well.
 
@@ -131,7 +133,96 @@
 \getbuffer
 \stoplinecorrection
 
+\stopsection
 
+\startsection[title=Strings]
+
+Those familiar with \TEX\ probably know that there's something called catcodes.
+These are properties that you assign to characters and that gives them some
+meaning, like regular letters, other characters, spaces, but also escape
+character (the backslash) or math shift (the dollar). Control over catcodes is
+what makes for instance verbatim possible.
+
+We show a few possibilities and start by defining a macro:
+
+\startbuffer
+\def\foo{x}
+\stopbuffer
+
+\typebuffer[option=TEX] \getbuffer
+
+\startbuffer
+\framed\bgroup
+    \startMPcode
+        interim catcoderegime := vrbcatcoderegime ;
+        draw textext("stream $\string\foo$") withcolor "darkred" ;
+    \stopMPcode
+\egroup
+\stopbuffer
+
+\typebuffer[option=TEX]
+
+\startlinecorrection \getbuffer \stoplinecorrection
+
+\startbuffer
+\framed\bgroup
+    \startMPcode
+        draw textext("stream $\foo$") withcolor "darkblue" ;
+    \stopMPcode
+\egroup
+\stopbuffer
+
+\typebuffer[option=TEX]
+
+\startlinecorrection \getbuffer \stoplinecorrection
+
+\startbuffer
+\framed\bgroup
+    \startMPcode
+        interim catcoderegime := vrbcatcoderegime ;
+        draw textext(stream "!" $\string\foo$) withcolor "darkgreen" ;
+    \stopMPcode
+\egroup
+\stopbuffer
+
+\typebuffer[option=TEX]
+
+\startlinecorrection \getbuffer \stoplinecorrection
+
+\startbuffer
+\framed\bgroup
+    \startMPcode
+        draw textext(stream "!" $\foo$) withcolor "darkyellow" ;
+    \stopMPcode
+\egroup
+\stopbuffer
+
+\typebuffer[option=TEX]
+
+\startlinecorrection \getbuffer \stoplinecorrection
+
+\startbuffer
+\framed\bgroup
+    \startMPcode
+        draw textext(\btx stream "!" $\string\foo$\etx) withcolor "darkgreen" ;
+    \stopMPcode
+\egroup
+\stopbuffer
+
+\typebuffer[option=TEX]
+
+\startlinecorrection \getbuffer \stoplinecorrection
+
+The \type {vrbcatcodesregime} switches to a verbatim catcode regime so the dollars
+remain dollars. But because we do expand control sequences we have to put \type
+{\string} in front.
+
+The (expandable) \type {\btx} and \type {\etx} commands are aliases for the
+control characters \type {0x02} and \type {0x03}. These are valid string fences
+in \LUAMETATEX's \METAPOST\ and thereby permit embedding of the double quotes.
+
+\stopsection
+
 \stopchapter
 
 \stopcomponent

Modified: trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametafun/luametafun.tex
===================================================================
--- trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametafun/luametafun.tex	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametafun/luametafun.tex	2025-02-19 22:48:50 UTC (rev 74156)
@@ -3,6 +3,10 @@
 % This file takes a while to process because we render some complex graphics. It
 % can be sped up by enabling caching, but for some images that has been disabled.
 
+% \enabledirectives[metapost.optimizecolor]
+
+% todo: add to syntax description
+
 \setupfootertexts[{\tttf uncorrected draft}]
 
 \environment luametafun-style
@@ -35,9 +39,14 @@
         \component luametafun-poisson
         \component luametafun-fonts
         \component luametafun-color
+        \component luametafun-lines
+        \component luametafun-paths
+        \component luametafun-envelope
         \component luametafun-groups
+        \component luametafun-potrace
         \component luametafun-extensions
         \component luametafun-interface
+%         \component luametafun-synchronizers
     \stopbodymatter
 
 \stopcomponent

Added: trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametatex/luametatex-assumptions.tex
===================================================================
--- trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametatex/luametatex-assumptions.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametatex/luametatex-assumptions.tex	2025-02-19 22:48:50 UTC (rev 74156)
@@ -0,0 +1,90 @@
+% language=us runpath=texruns:manuals/luametatex
+
+\environment luametatex-style
+
+\startdocument[title=Assumptions]
+
+\startsection[title={Introduction}]
+
+Because the engine provides no backend there is also no need to document it.
+However, in \CONTEXT\ we assume some features to be supported by its own backend.
+These will be collected here. This chapter is rather \CONTEXT\ specific, for
+instance we have extended what can be done with characters and that is pretty
+much up to a macro package to decide.
+
+\stopsection
+
+\startsection[title=Virtual fonts]
+
+Virtual fonts are a nice extension to traditional \TEX\ fonts that originally was
+independent from the engine, which only needs dimensions from a \TFM\ file. In
+\LUATEX, because it has a backend built in, virtual fonts are handled by the
+engine but here we also can construct such fonts at runtime. The original set of
+commands is:
+
+\starttabulate[|w(4em)||||]
+\NC char    \NC \textplus  \NC chr sx sy \NC \NC \NR
+\NC right   \NC \textplus  \NC amount    \NC \NC \NR
+\NC down    \NC \textplus  \NC amount    \NC \NC \NR
+\NC push    \NC \textplus  \NC           \NC \NC \NR
+\NC pop     \NC \textplus  \NC           \NC \NC \NR
+\NC font    \NC \textplus  \NC index     \NC \NC \NR
+\NC nop     \NC \textplus  \NC           \NC \NC \NR
+\NC special \NC \textminus \NC str       \NC \NC \NR
+\NC rule    \NC \textplus  \NC v h       \NC \NC \NR
+\stoptabulate
+
+The \PDFTEX\ engine added two more but these are not supported in \CONTEXT:
+
+\starttabulate[|w(4em)||||]
+\NC pdf     \NC \textminus \NC str \NC \NC \NR
+\NC pdfmode \NC \textminus \NC n   \NC \NC \NR
+\stoptabulate
+
+The \LUATEX\ engine also added some but these are never found in loaded fonts,
+only in those constructed at runtime. Two are not supported in \CONTEXT.
+
+\starttabulate[|w(4em)||||]
+\NC lua     \NC \textplus  \NC code  \NC f(font,char,posh,posv,sx,sy) \NC \NR
+\NC image   \NC \textminus \NC n     \NC                              \NC \NR
+\NC node    \NC \textplus  \NC n     \NC                              \NC \NR
+\NC scale   \NC \textminus \NC sx sy \NC                              \NC \NR
+\stoptabulate
+
+The \LUAMETATEX\ engine has nothing on board and doesn't even carry the virtual
+commands around. The backend can just fetch them from the \LUA\ end. An advantage is
+that we can easily extend the repertoire of commands:
+
+\starttabulate[|w(4em)||||]
+\NC slot     \NC \textplus  \NC index chr csx csy                            \NC \NC \NR
+\NC use      \NC \textplus  \NC index chr ... chr                            \NC \NC \NR
+\NC left     \NC \textplus  \NC amount                                       \NC \NC \NR
+\NC up       \NC \textplus  \NC amount                                       \NC \NC \NR
+\NC offset   \NC \textplus  \NC h v chr [csx [csy]]                          \NC \NC \NR
+\NC stay     \NC \textplus  \NC chr (push/pop)                               \NC \NC \NR
+\NC compose  \NC \textplus  \NC h v chr                                      \NC \NC \NR
+\NC frame    \NC \textplus  \NC wd jt dp line outline advance baseline color \NC \NC \NR
+\NC line     \NC \textplus  \NC wd ht dp color                               \NC \NC \NR
+\NC inspect  \NC \textplus  \NC                                              \NC \NC \NR
+\NC trace    \NC \textplus  \NC                                              \NC \NC \NR
+\NC <plugin> \NC \textplus  \NC                                              \NC f(posh,posv,packet) \NC \NR
+\stoptabulate
+
+There are some manipulations that don't need the virtual mechanism. In addition to the
+character properties like \type {width}, \type {height} and \type {depth} we also have:
+
+\starttabulate[||||]
+\NC advance \NC         \NC the width used in the backend \NC \NR
+\NC scale   \NC         \NC an additional scale factor    \NC \NR
+\NC xoffset \NC         \NC horizontal shift              \NC \NR
+\NC yoffset \NC         \NC vertical shift                \NC \NR
+\NC effect  \NC slant   \NC factor used for tilting       \NC \NR
+\NC         \NC extend  \NC horizontal scale              \NC \NR
+\NC         \NC squeeze \NC vertical scale               \NC \NR
+\NC         \NC mode    \NC special effects like outline \NC \NR
+\NC         \NC weight  \NC pen stroke width             \NC \NR
+\stoptabulate
+
+\stopsection
+
+\stopdocument


Property changes on: trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametatex/luametatex-assumptions.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Deleted: trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametatex/luametatex-building.tex
===================================================================
--- trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametatex/luametatex-building.tex	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametatex/luametatex-building.tex	2025-02-19 22:48:50 UTC (rev 74156)
@@ -1,1391 +0,0 @@
-% language=us runpath=texruns:manuals/luametatex
-
-\environment luametatex-style
-
-\startcomponent luametatex-building
-
-\startchapter[reference=building,title={Boxes, paragraphs and pages}]
-
-\startsection[title={Introduction}]
-
-\topicindex {building}
-\topicindex {pages}
-\topicindex {paragraphs}
-\topicindex {marks}
-\topicindex {inserts}
-
-There are some enhancements that relate to the way paragraphs and pages are
-built. In this chapter we will cover those. There can be a bit of overlap with
-other chapters. These enhancements are still somewhat experimental.
-
-\stopsection
-
-\startsection[title=Directions]
-
-\topicindex {\OMEGA}
-\topicindex {\ALEPH}
-\topicindex {directions}
-
-\startsubsection[title={Two directions}]
-
-The directional model in \LUAMETATEX\ is a simplified version the the model used
-in \LUATEX. In fact, not much is happening at all: we only register a change in
-direction.
-
-\stopsubsection
-
-\startsubsection[title={How it works}]
-
-The approach is that we try to make node lists balanced but also try to avoid
-some side effects. What happens is quite intuitive if we forget about spaces
-(turned into glue) but even there what happens makes sense if you look at it in
-detail. However that logic makes in|-|group switching kind of useless when no
-properly nested grouping is used: switching from right to left several times
-nested, results in spacing ending up after each other due to nested mirroring. Of
-course a sane macro package will manage this for the user but here we are
-discussing the low level injection of directional information.
-
-This is what happens:
-
-\starttyping
-\textdirection 1 nur {\textdirection 0 run \textdirection 1 NUR} nur
-\stoptyping
-
-This becomes stepwise:
-
-\startnarrower
-\starttyping
-injected: [push 1]nur {[push 0]run [push 1]NUR} nur
-balanced: [push 1]nur {[push 0]run [pop 0][push 1]NUR[pop 1]} nur[pop 0]
-result  : run {RUNrun } run
-\stoptyping
-\stopnarrower
-
-And this:
-
-\starttyping
-\textdirection 1 nur {nur \textdirection 0 run \textdirection 1 NUR} nur
-\stoptyping
-
-becomes:
-
-\startnarrower
-\starttyping
-injected: [+TRT]nur {nur [+TLT]run [+TRT]NUR} nur
-balanced: [+TRT]nur {nur [+TLT]run [-TLT][+TRT]NUR[-TRT]} nur[-TRT]
-result  : run {run RUNrun } run
-\stoptyping
-\stopnarrower
-
-Now, in the following examples watch where we put the braces:
-
-\startbuffer
-\textdirection 1 nur {{\textdirection 0 run} {\textdirection 1 NUR}} nur
-\stopbuffer
-
-\typebuffer
-
-This becomes:
-
-\startnarrower
-\getbuffer
-\stopnarrower
-
-Compare this to:
-
-\startbuffer
-\textdirection 1 nur {{\textdirection 0 run }{\textdirection 1 NUR}} nur
-\stopbuffer
-
-\typebuffer
-
-Which renders as:
-
-\startnarrower
-\getbuffer
-\stopnarrower
-
-So how do we deal with the next?
-
-\startbuffer
-\def\ltr{\textdirection 0\relax}
-\def\rtl{\textdirection 1\relax}
-
-run {\rtl nur {\ltr run \rtl NUR \ltr run \rtl NUR} nur}
-run {\ltr run {\rtl nur \ltr RUN \rtl nur \ltr RUN} run}
-\stopbuffer
-
-\typebuffer
-
-It gets typeset as:
-
-\startnarrower
-\startlines
-\getbuffer
-\stoplines
-\stopnarrower
-
-We could define the two helpers to look back, pick up a skip, remove it and
-inject it after the dir node. But that way we loose the subtype information that
-for some applications can be handy to be kept as|-|is. This is why we now have a
-variant of \prm {textdirection} which injects the balanced node before the skip.
-Instead of the previous definition we can use:
-
-\startbuffer[def]
-\def\ltr{\linedirection 0\relax}
-\def\rtl{\linedirection 1\relax}
-\stopbuffer
-
-\typebuffer[def]
-
-and this time:
-
-\startbuffer[txt]
-run {\rtl nur {\ltr run \rtl NUR \ltr run \rtl NUR} nur}
-run {\ltr run {\rtl nur \ltr RUN \rtl nur \ltr RUN} run}
-\stopbuffer
-
-\typebuffer[txt]
-
-comes out as a properly spaced:
-
-\startnarrower
-\startlines
-\getbuffer[def,txt]
-\stoplines
-\stopnarrower
-
-Anything more complex that this, like combination of skips and penalties, or
-kerns, should be handled in the input or macro package because there is no way we
-can predict the expected behaviour. In fact, the \prm {linedirection} is just a
-convenience extra which could also have been implemented using node list parsing.
-
-Directions are complicated by the fact that they often need to work over groups
-so a separate grouping related stack is used. A side effect is that there can be
-paragraphs with only a local par node followed by direction synchronization
-nodes. Paragraphs like that are seen as empty paragraphs and therefore ignored.
-Because \prm {noindent} doesn't inject anything but a \prm {indent} injects
-an box, paragraphs with only an indent and directions are handles and paragraphs
-with content. When indentation is normalized a paragraph with an indentation
-skip is seen as content.
-
-\stopsubsection
-
-\startsubsection[title={Normalizing lines}]
-
-The original \TEX\ machinery was never meant to be opened up. As a consequence a
-constructed line can have different layouts. There can be left- and/or right
-skips and hanging indentation or parshape can result in a shift and adapted
-width. In \LUATEX\ glue got subtypes so we can recognize the left-, right and
-parfill skips, but still there is no hundred percent certainty about the shape.
-
-In \LUAMETATEX\ lines can be normalized. This is optional because we want to
-preserve the original (for comparison) and is controlled by \prm
-{normalizelinemode}. That variable actually drives some more. An earlier version
-provided a few more granular options (for instance: does a leftskip comes before
-or after a left hanging indentation) but in the end that was dropped. Because
-this normalization only is seen at the \LUA\ end there is no need to go into much
-detail here.
-
-At this moment a line has this pattern: left parfill, left hang, left skip,
-indentation, content, right hang, right skip, right parfill. Of course the
-indentation and fill skips are not present in every line.
-
-Control over normalization happens via the mentioned mode variable and here is
-what the engine provides right now. We use a bitmap:
-
-\starttabulate[|l|l|]
-\DB value \BC reported \NC \NR
-\TB
-\NC \type{0x0001} \NC normalize line as described above            \NC \NR
-\NC \type{0x0002} \NC use a skip for parindent instead of a box    \NC \NR
-\NC \type{0x0004} \NC swap hangindent in l2r mode                  \NC \NR
-\NC \type{0x0008} \NC swap parshape in l2r mode                    \NC \NR
-\NC \type{0x0010} \NC put breaks after dir in l2r mode             \NC \NR
-\NC \type{0x0020} \NC remove margin kerns (\PDFTEX\ left-over)     \NC \NR
-\NC \type{0x0040} \NC if needed clip width and use correction kern \NC \NR
-\LL
-\stoptabulate
-
-Setting the bit enables the related normalization. More features might be added
-in future releases.
-
-% Swapping shapes
-%
-% Another adaptation to the \ALEPH\ directional model is control over shapes driven
-% by \prm {hangindent} and \prm {parshape}. This is controlled by a new parameter
-% \prm {shapemode}:
-%
-% \starttabulate[|c|l|l|]
-% \DB value    \BC \prm {hangindent} \BC \prm {parshape} \NC \NR
-% \TB
-% \BC \type{0} \NC  normal             \NC normal            \NC \NR
-% \BC \type{1} \NC  mirrored           \NC normal            \NC \NR
-% \BC \type{2} \NC  normal             \NC mirrored          \NC \NR
-% \BC \type{3} \NC  mirrored           \NC mirrored          \NC \NR
-% \LL
-% \stoptabulate
-%
-% The value is reset to zero (like \prm {hangindent} and \prm {parshape})
-% after the paragraph is done with. You can use negative values to prevent
-% this. In \in {figure} [fig:shapemode] a few examples are given.
-%
-% \startplacefigure[reference=fig:shapemode,title={The effect of \type {shapemode}.}]
-%     \startcombination[2*3]
-%         {\ruledvbox \bgroup \setuptolerance[verytolerant]
-%             \hsize .45\textwidth \switchtobodyfont[6pt]
-%                 \pardirection 0 \textdirection 0
-%                 \hangindent 40pt \hangafter -3
-%                 \leftskip10pt \input tufte \par
-%          \egroup} {TLT: hangindent}
-%         {\ruledvbox \bgroup \setuptolerance[verytolerant]
-%             \hsize .45\textwidth \switchtobodyfont[6pt]
-%             \pardirection 0 \textdirection 0
-%             \parshape 4 0pt .8\hsize 10pt .8\hsize 20pt .8\hsize 0pt \hsize
-%             \input tufte \par
-%          \egroup} {TLT: parshape}
-%         {\ruledvbox \bgroup \setuptolerance[verytolerant]
-%             \hsize .45\textwidth \switchtobodyfont[6pt]
-%             \pardirection 1 \textdirection 1
-%             \hangindent 40pt \hangafter -3
-%             \leftskip10pt \input tufte \par
-%          \egroup} {TRT: hangindent mode 0}
-%         {\ruledvbox \bgroup \setuptolerance[verytolerant]
-%             \hsize .45\textwidth \switchtobodyfont[6pt]
-%             \pardirection 1 \textdirection 1
-%             \parshape 4 0pt .8\hsize 10pt .8\hsize 20pt .8\hsize 0pt \hsize
-%             \input tufte \par
-%          \egroup} {TRT: parshape mode 0}
-%         {\ruledvbox \bgroup \setuptolerance[verytolerant]
-%             \hsize .45\textwidth \switchtobodyfont[6pt]
-%             \shapemode=3
-%             \pardirection 1 \textdirection 1
-%             \hangindent 40pt \hangafter -3
-%             \leftskip10pt \input tufte \par
-%          \egroup} {TRT: hangindent mode 1 & 3}
-%         {\ruledvbox \bgroup \setuptolerance[verytolerant]
-%             \hsize .45\textwidth \switchtobodyfont[6pt]
-%             \shapemode=3
-%             \pardirection 1 \textdirection 1
-%             \parshape 4 0pt .8\hsize 10pt .8\hsize 20pt .8\hsize 0pt \hsize
-%             \input tufte \par
-%          \egroup} {TRT: parshape mode 2 & 3}
-%     \stopcombination
-% \stopplacefigure
-%
-% We have \type {\pardirection}, \type {\textdirection}, \type {\mathdirection} and
-% \type {\linedirection} that is like \type {\textdirection} but with some
-% additional (inline) glue checking.
-
-% Controlling glue with \prm {breakafterdirmode}
-%
-% Glue after a dir node is ignored in the linebreak decision but you can bypass that
-% by setting \prm {breakafterdirmode} to~\type {1}. The following table shows the
-% difference. Watch your spaces.
-%
-% \def\ShowSome#1{%
-%     \BC \type{#1}
-%     \NC \breakafterdirmode\zerocount\hsize\zeropoint#1
-%     \NC
-%     \NC \breakafterdirmode\plusone\hsize\zeropoint#1
-%     \NC
-%     \NC \NR
-% }
-%
-% \starttabulate[|l|Tp(1pt)|w(5em)|Tp(1pt)|w(5em)|]
-%     \DB
-%     \BC \type{0}
-%     \NC
-%     \BC \type{1}
-%     \NC
-%     \NC \NR
-%     \TB
-%     \ShowSome{pre {\textdirection 0 xxx} post}
-%     \ShowSome{pre {\textdirection 0 xxx }post}
-%     \ShowSome{pre{ \textdirection 0 xxx} post}
-%     \ShowSome{pre{ \textdirection 0 xxx }post}
-%     \ShowSome{pre { \textdirection 0 xxx } post}
-%     \ShowSome{pre {\textdirection 0\relax\space xxx} post}
-%     \LL
-% \stoptabulate
-
-\stopsubsection
-
-\startsubsection[title=Orientations]
-
-\topicindex {boxes+orientations}
-
-As mentioned, the difference with \LUATEX\ is that we only have numeric
-directions and that there are only two: left|-|to|-|right (\type {0}) and
-right|-|to|-|left (\type {1}). The direction of a box is set with \type
-{direction}.
-
-In addition to that boxes can now have an \type {orientation} keyword followed by
-optional \type {xoffset} and|/|or \type {yoffset} keywords. The offsets don't
-have consequences for the dimensions. The alternatives \type {xmove} and \type
-{ymove} on the contrary are reflected in the dimensions. Just play with them. The
-offsets and moves only are accepted when there is also an orientation, so no time
-is wasted on testing for these rarely used keywords. There are related primitives
-\type {\box...} that set these properties.
-
-As these are experimental it will not be explained here (yet). They are covered
-in the descriptions of the development of \LUAMETATEX: articles and|/|or
-documents in the \CONTEXT\ distribution. For now it is enough to know that the
-orientation can be up, down, left or right (rotated) and that it has some
-anchoring variants. Combined with the offsets this permits macro writers to
-provide solutions for top|-|down and bottom|-|up writing directions, something
-that is rather macro package specific and used for scripts that need
-manipulations anyway. The \quote {old} vertical directions were never okay and
-therefore not used.
-
-There are a couple of properties in boxes that you can set and query but that
-only really take effect when the backend supports them. When usage on \CONTEXT\
-shows that is't okay, they will become official, so we just mention them: \prm
-{boxdirection}, \prm {boxattribute}, \prm {boxorientation}, \prm {boxxoffset},
-\prm {boxyoffset}, \prm {boxxmove}, \prm {boxymove} and \prm {boxtotal}.
-
-{\em This is still somewhat experimental and will be documented in more detail
-when I've used it more in \CONTEXT\ and the specification is frozen. This might
-take some time (and user input).}
-
-\stopsubsection
-
-\stopsection
-
-\startsection[title={Boxes, rules and leaders}]
-
-\startsubsection[title={\prm {outputbox}}]
-
-\topicindex {output}
-
-This integer parameter allows you to alter the number of the box that will be
-used to store the page sent to the output routine. Its default value is 255, and
-the acceptable range is from 0 to 65535.
-
-\startsyntax
-\outputbox = 12345
-\stopsyntax
-
-\stopsubsection
-
-\startsubsection[title={\prm {hrule}, \prm {vrule}, \prm {srule}, \prm {nohrule}, \prm {novrule},
-\prm {virtualhrule} and \prm {virtualvrule}}]
-
-\topicindex {rules}
-
-Both rule drawing commands take an optional \type {xoffset} and \type {yoffset}
-parameter. The displacement is virtual and not taken into account when the
-dimensions are calculated. A rule is specified in the usual way:
-
-\obeydepth
-
-\startbuffer
-\blue \vrule
-    height 2ex depth 1ex width 10cm
-\relax
-\stopbuffer
-
-\startlinecorrection
-\getbuffer
-\stoplinecorrection
-
-There is however a catch. The keyword scanners in \LUAMETATEX\ are implemented
-slightly different. When \TEX\ scans a keyword it will (case insensitive) scan
-for a whole keyword. So, it scans for \type {height} and when it doesn't find it
-it will scan for \type {depth} etc. When it does find a keyword in this case it
-expects a dimension next. When that criterion is not met it will issue an error
-message.
-
-In order to avoid look ahead failures like that it is recommended to end the
-specification with \type {\relax}. A glue specification is an other example where
-a \type {\relax} makes sense when look ahead issues are expected and actually
-there in traditional scanning the order of keywords can also matter. In any case,
-when no valid keyword is seen the characters scanned so far are pushed back in
-the input.
-
-The main reason for using an adapted scanner is that we always permit repetition
-(consistency) and accept an arbitrary order. Because we have more keywords to
-process the scanner quits at a partial failure. This prevents some push back and
-also gives an earlier warning. Interesting is that some \CONTEXT\ users ran into
-error messages due to a missing \type {\relax} and found out that their style has
-a potential flaw with respect to look ahead. One can be lucky for years.
-
-Back to rules, there are some extra keywords, two deal with an offset, and four
-provide margins. The margins are a bit special because \type {left} and \type
-{top} are the same as are \type {right} and \type {bottom}. They influence the
-edges and these depend on it being a horizontal or vertical rule.
-
-\obeydepth
-
-\startbuffer
-\blue \vrule
-    height 2.0ex depth 1.0ex width 10cm
-\relax
-\white \vrule
-    height 1.0ex depth 0.5ex width  9cm
-    xoffset -9.5cm yoffset .25ex
-\relax
-\blue \vrule
-    height .5ex depth 0.25ex width  8cm
-    xoffset -18cm yoffset .375ex top 1pt
-\relax
-\stopbuffer
-
-\startlinecorrection
-\getbuffer
-\stoplinecorrection
-
-Two new primitives were introduced: \prm {nohrule} and \prm {novrule}. These can
-be used to reserve space. This is often more efficient than creating an empty box
-with fake dimensions. Of course this assumes that the backend implements them
-being invisible but still taking space.
-
-An \prm {srule} is sort of special. In text mode it is just a convenience (we
-could do without it for ages) but in math mode it comes in handy when we want to
-enforce consistency. \footnote {In \CONTEXT\ there is a lot of focus on
-consistent vertical spacing, something that doesn't naturally comes with \TEX\
-(you have to pay attention!) and therefore for decades now you can find plenty of
-documents with bad spacing of a nature that has seem to have become accepted as
-quality. This probably makes these \prm {srule}'s one of the few primitives that
-actually targets at \CONTEXT.}
-
-As with all rules, the backend will makes rules span the width or height and
-depth of the encapsulating box. An \prm {srule} is just a \prm {vrule} but is set
-up such that it can adapt itself:
-
-\startbuffer
-\hbox to 3cm {x\leaders\hrule\hfil x}
-\hbox{x \vrule width 4cm \relax x}
-\hbox{x \srule width 4cm \relax x}
-\hbox{x \srule font \font char `( width 4cm \relax x}
-\hbox{$x \srule fam \fam  char `( width 4cm \relax x$}
-% \hbox{x \vrule font \font char `( width 4cm \relax x}
-% \hbox{$x \vrule fam \fam  char `( width 4cm \relax x$}
-\stopbuffer
-
-\typebuffer
-
-You can hard code the height and depth or get it from a font|/|family|/|character
-combination. This is especially important in math mode where then can adapt to
-(stylistic) circumstances.
-
-\startlines
-\showboxes\getbuffer
-\stoplines
-
-Because this kind of rules has a dedicated subtype you can intercept it in the backend
-if needed. The two virtual variants are special in the way that they are like normal
-rules but take no space. Can you figure out how to get this?
-
-\startlinecorrection[blank]
-\dontleavehmode \hbox{%
-    \hbox{\green before}%
-    {\darkblue \virtualvrule width 40pt height -2pt depth 4pt xoffset -20pt\relax}%
-    \hbox{\red after}%
-}
-\stoplinecorrection
-
-% \vskip5pt
-
-% \ruledvbox{\ruledhbox to 10pt{\green x}
-% \virtualhrule width 10pt height 2pt depth 2pt yoffset -2pt \relax
-% \ruledhbox to 10pt{\red x}}
-
-\stopsubsection
-
-\startsubsection[title={\prm {vsplit}, \prm {tsplit} and \prm {dsplit}}]
-
-\topicindex {splitting}
-
-The \prm {vsplit} primitive has to be followed by a specification of the required
-height. As alternative for the \type {to} keyword you can use \type {upto} to get
-a split of the given size but result has the natural dimensions then.
-
-\starttyping
-\vsplit 123 to   10cm % final box has the required height
-\vsplit 123 upto 10cm % final box has its natural height
-\stoptyping
-
-The two alternative primitives return a \prm {vtop} or \prm {dbox} instead of a
-\prm {vbox}. All three accept the \type {attr} keyword as boxes do.
-
-\stopsubsection
-
-\startsubsection[title={\prm {boxxoffset}, \prm {boxyoffset}, \prm {boxxmove}, \prm {boxymove},
-\prm{boxorientation} and \prm{boxgeometry}}]
-
-This repertoire of primitives can be used to do relative positioning. The offsets
-are virtual while the moves adapt the dimensions. The orientation bitset can be
-used to rotate the box over 90, 180 and 270 degrees. It also influences the
-corner, midpoint or baseline.
-
-{\em There is information in the \CONTEXT\ low level manuals and in due time I
-will add a few examples here. This feature needs support in the backend when used
-(as in \CONTEXT) so it might influence performance.}
-
-\stopsubsection
-
-\startsubsection[title={\prm {boxtotal}}]
-
-The \prm {boxtotal} primitive returns the sum of the height and depth and is less
-useful as setter: it just sets the height and depth to half of the given value.
-
-\stopsubsection
-
-\startsubsection[title={\prm {boxshift}}]
-
-In traditional \TEX\ a box has height, depth, width and a shift where the later
-relates to \prm {raise}, \prm {lower}, \prm {moveleft} and \prm {moveright}. This
-primitive can be used to query and set this property.
-
-\startbuffer
-\setbox0\hbox{test test test}
-\setbox2\hbox{test test test} \boxshift2 -10pt
-\ruledhbox{x \raise10pt\box0\ x}
-\ruledhbox{x           \box2\ x}
-\stopbuffer
-
-\typebuffer
-
-\stopsubsection
-
-\startsubsection[title={\prm {boxanchor}, \prm {boxanchors}, \prm {boxsource} and \prm {boxtarget}}]
-
-{\em These are experimental.}
-
-\stopsubsection
-
-\startsubsection[title={\prm {boxfreeze}, \prm {boxadapt} and \prm {boxrepack}}]
-
-\topicindex {boxes+postprocessing}
-
-This operation will freeze the glue in the given box, something that normally is
-delayed and delegated to the backend.
-
-\startbuffer
-\setbox    0 \hbox to 5cm {\hss test}
-\setbox    2 \hbox to 5cm {\hss test}
-\boxfreeze 2 0
-\ruledhbox{\unhbox   0}
-\ruledhbox{\unhbox   2}
-\stopbuffer
-
-\typebuffer
-
-The second parameter to \prm {boxfreeze} determines recursion. Here we just
-freeze the outer level:
-
-\getbuffer
-
-Repacking will take the content of an existing box and add or subtract from it:
-
-\startbuffer
-\setbox 0 \hbox        {test test test}
-\setbox 2 \hbox {\red   test test test} \boxrepack0 +.2em
-\setbox 4 \hbox {\green test test test} \boxrepack0 -.2em
-\ruledhbox{\box0} \vskip-\lineheight
-\ruledhbox{\box0} \vskip-\lineheight
-\ruledhbox{\box0}
-\stopbuffer
-
-\typebuffer
-
-\getbuffer
-
-We can use this primitive to check the natural dimensions:
-
-\startbuffer
-\setbox 0 \hbox spread 10pt {test test test}
-\ruledhbox{\box0} (\the\boxrepack0,\the\wd0)
-\stopbuffer
-
-\typebuffer
-
-\getbuffer
-
-Adapting will recalculate the dimensions with a scale factor for the glue:
-
-\startbuffer
-\setbox 0 \hbox       {test test test}
-\setbox 2 \hbox {\red  test test test} \boxadapt 0   200
-\setbox 4 \hbox {\blue test test test} \boxadapt 0  -200
-\ruledhbox{\box0} \vskip-\lineheight
-\ruledhbox{\box0} \vskip-\lineheight
-\ruledhbox{\box0}
-\stopbuffer
-
-\typebuffer
-
-\getbuffer
-
-\stopsubsection
-
-\startsubsection[title={\prm {boxvadjust}}]
-
-This primitive binds a \prm {vadjust} to a box and therefore also accepts the
-\type {pre} and \type {post} keywords which means that you can prepend and append
-as the box itself gets flushed.
-
-\stopsubsection
-
-\startsubsection[title={Overshooting dimensions}]
-
-\topicindex {boxes+overfull}
-
-The \prm {overshoot} primitive reports the most recent amount of overshoot when a
-box is packages. It relates to overfull boxes and the then set \prm {badness} of
-1000000.
-
-\startbuffer
-\hbox to 2cm {does it fit}               \the\overshoot
-\hbox to 2cm {does it fit in here}       \the\overshoot
-\hbox to 2cm {how much does fit in here} \the\overshoot
-\stopbuffer
-
-\typebuffer
-
-This global state variables reports a dimension:
-
-\startlines
-\getbuffer
-\stoplines
-
-\stopsubsection
-
-\startsubsection[title={Images and reused box objects},reference=sec:imagesandforms]
-
-\topicindex {images}
-
-In original \TEX\ image support is dealt with via specials. It's not a native
-feature of the engine. All that \TEX\ cares about is dimensions, so in practice
-that meant: using a box with known dimensions that wraps a special that instructs
-the backend to include an image. The wrapping is needed because a special itself
-is a whatsit and as such has no dimensions.
-
-In \PDFTEX\ a special whatsit for images was introduced and that one {\em has}
-dimensions. As a consequence, in several places where the engine deals with the
-dimensions of nodes, it now has to check the details of whatsits. By inheriting
-code from \PDFTEX, the \LUATEX\ engine also had that property. However, at some
-point this approach was abandoned and a more natural trick was used: images (and
-box resources) became a special kind of rules, and as rules already have
-dimensions, the code could be simplified.
-
-When direction nodes and (formerly local) par nodes also became first class
-nodes, whatsits again became just that: nodes representing whatever you want, but
-without dimensions, and therefore they could again be ignored when dimensions
-mattered. And, because images were disguised as rules, as mentioned, their
-dimensions automatically were taken into account. This separation between front
-and backend cleaned up the code base already quite a bit.
-
-In \LUAMETATEX\ we still have the image specific subtypes for rules, but the
-engine never looks at subtypes of rules. That was up to the backend. This means
-that image support is not present in \LUAMETATEX. When an image specification was
-parsed the special properties, like the filename, or additional attributes, were
-stored in the backend and all that \LUATEX\ does is registering a reference to an
-image's specification in the rule node. But, having no backend means nothing is
-stored, which in turn would make the image inclusion primitives kind of weird.
-
-Therefore you need to realize that contrary to \LUATEX, {\em in \LUAMETATEX\
-support for images and box reuse is not built in}! However, we can assume that
-an implementation uses rules in a similar fashion as \LUATEX\ does. So, you can
-still consider images and box reuse to be core concepts. Here we just mention the
-primitives that \LUATEX\ provides. They are not available in the engine but can
-of course be implemented in \LUA.
-
-\starttabulate[|l|p|]
-\DB command \BC explanation \NC \NR
-\TB
-\NC \tex {saveboxresource}             \NC save the box as an object to be included later \NC \NR
-\NC \tex {saveimageresource}           \NC save the image as an object to be included later \NC \NR
-\NC \tex {useboxresource}              \NC include the saved box object here (by index) \NC \NR
-\NC \tex {useimageresource}            \NC include the saved image object here (by index) \NC \NR
-\NC \tex {lastsavedboxresourceindex}   \NC the index of the last saved box object \NC \NR
-\NC \tex {lastsavedimageresourceindex} \NC the index of the last saved image object \NC \NR
-\NC \tex {lastsavedimageresourcepages} \NC the number of pages in the last saved image object \NC \NR
-\LL
-\stoptabulate
-
-An implementation probably should accept the usual optional dimension parameters
-for \type {\use...resource} in the same format as for rules. With images, these
-dimensions are then used instead of the ones given to \tex {useimageresource} but
-the original dimensions are not overwritten, so that a \tex {useimageresource}
-without dimensions still provides the image with dimensions defined by \tex
-{saveimageresource}. These optional parameters are not implemented for \tex
-{saveboxresource}.
-
-\starttyping
-\useimageresource width 20mm height 10mm depth 5mm \lastsavedimageresourceindex
-\useboxresource   width 20mm height 10mm depth 5mm \lastsavedboxresourceindex
-\stoptyping
-
-Examples or optional entries are \type {attr} and \type {resources} that accept a
-token list, and the \type {type} key. When set to non|-|zero the \type {/Type}
-entry is omitted. A value of 1 or 3 still writes a \type {/BBox}, while 2 or 3
-will write a \type {/Matrix}. But, as said: this is entirely up to the backend.
-Generic macro packages (like \type {tikz}) can use these assumed primitives so
-one can best provide them. It is probably, for historic reasons, the only more or
-less standardized image inclusion interface one can expect to work in all macro
-packages.
-
-\stopsubsection
-
-\startsubsection[title={\prm {dbox}}]
-
-This primitive is a variant on \prm {vbox} in the sense that when it gets
-appended to a vertical list the height of the topmost line or rule as well as the
-depth of the box are taken into account when interline space is calculated.
-
-\stopsubsection
-
-
-\startsubsection[title={\prm {hpack}, \prm {vpack}, \prm {tpack} and \prm {dpack}}]
-
-\topicindex {packing}
-
-These three primitives are the equivalents of \prm {hbox}, \prm {vbox}, \prm
-{vtop} and \prm {dbox} but they don't trigger the packaging related callbacks.
-Of course one never know if content needs a treatment so using them should be
-done with care. Apart from accepting more keywords (and therefore options) the
-normal box behave the same as before.
-
-\stopsubsection
-
-\startsubsection[title={\prm {vcenter}}]
-
-The \prm {vcenter} builder also works in text mode.
-
-\stopsubsection
-
-\startsubsection[title={\prm {unhpack}, \prm {unvpack}}]
-
-\topicindex {unpacking}
-
-These two are somewhat experimental. They ignore the accumulated pre- and
-postmigrated material bound to a box. I needed it for some experiment so the
-functionality might change when I really need it.
-
-\stopsubsection
-
-\startsubsection[title={\prm {gleaders} and \prm {uleaders}},reference=sec:gleaders]
-
-\topicindex {leaders}
-
-This type of leaders is anchored to the origin of the box to be shipped out. So
-they are like normal \prm {leaders} in that they align nicely, except that the
-alignment is based on the {\it largest\/} enclosing box instead of the {\it
-smallest\/}. The \type {g} stresses this global nature. The \prm {uleaders} are
-used for flexible boxes and are discussed elsewhere.
-
-\stopsubsection
-
-\stopsection
-
-\startsection[title={Paragraphs}]
-
-\startsubsection[title=Freezing]
-
-In \LUAMETATEX\ we store quite some properties with a paragraph. Where in traditional
-\TEX\ the properties that are set when the paragraph broken into lines are used, here
-we can freeze them.
-
-{\em At some point this section will describe \prm {autoparagraphmode}, \prm
-{everybeforepar}, \prm {snapshotpar}, \prm {wrapuppar}, etc. For the moment the
-manuals that come with \CONTEXT\ have to do.}
-
-% The concept of paragraph in \TEX\ can be a bit confusing, and what follows here
-% is even more so. In \LUAMETATEX\ we distinguish three different cases:
-%
-% \startitemize[packed]
-% \starthead {normal}
-%     This state is entered when we have an explicit \type {\par}.
-% \stophead
-% \starthead {inserted}
-%     This state is entered when \TEX\ forces a new paragraph which can happen when
-%     we automatically change to horizontal mode.
-% \stophead
-% \starthead{newline}
-%     This state is entered when an empty line is encoduntered.
-% \stophead
-% \stopitemize
-%
-% When defining macros, a \type {\par} can be a delimiter and an empty line is then
-% equivalent to that. With \type {\autoparagraphmode} we can change this behaviour.
-% The bits set in this variable determines how \type {\par} tokens are interpreted
-% and processed in different situations. It is good to know that this experimental
-% feature is pretty much \CONTEXT\ specific. Here are a few characteristics:
-%
-% \startitemize[packed]
-%     \startitem
-%         When any bit is set, a par token is appended when with property inserted.
-%         The reason behind different properties (mentioned above) is that we can
-%         intercept them with callbacks.
-%     \stopitem
-%     \startitem
-%         When bit~1 (text) is set, \type {\par} will be appended to a string when
-%         a token list is serialized.
-%     \stopitem
-%     \startitem
-%         When bit~2 (macro) is set when a macro is defined there is an explicit
-%         check for a par token when \type {\par} is part of the preamble.
-%     \stopitem
-%     \startitem
-%         When bit~4 (go on) is not set we enter the same state as a new line.
-%         After that when bit~1 (text) is set, a regular par token command is
-%         injected (with an associated newline state), otherwise the meaning of
-%         \type {\par} kicks in (users can have redefined \type {\par}).
-%     \stopitem
-% \stopitemize
-%
-% In \CONTEXT\ we currently default to one, because we still have a few \type {\par}
-% delimited macros but these will go and then we will set the mode to two. This
-% means that in \CONTEXT\ such macro expects an explicit \type {\par} and not an
-% empty line which in turn encourages users to use the proper alternatives. We
-% anyway don't support redefined \type {\par} tokens. Therefore, when we load for
-% instance tikz, we set the mode to zero (normal \TEX) and afterwards back to one.
-% This is still an experimental feature that we occasionally review so don't bother
-% us with questions about it (just don't set the mode).
-
-
-\stopsubsection
-
-\startsubsection[title=Penalties]
-
-In addition to the penalties introduced in \ETEX, we also provide \prm
-{orphanpenalty} and \prm {orphanpenalties}. When we're shaping a paragraph
-an additional \prm {shapingpenalty} can be injected. This penalty gets
-injected instead of the usual penalties when the following bits are set in
-\prm {shapingpenaltiesmode}:
-
-\starttabulate[|l|l|p|]
-\DB value        \BC ignored \NC \NR
-\TB
-\NC \type {0x01} \NC interlinepenalty \NC \NR
-\NC \type {0x02} \NC widowpenalty     \NC \NR
-\NC \type {0x04} \NC clubpenalty      \NC \NR
-\NC \type {0x08} \NC brokenpenalty    \NC \NR
-\LL
-\stoptabulate
-
-When none of these is set the shaping penalty will be added. That way one can
-prevent a page break inside a shape.
-
-\stopsubsection
-
-\startsubsection[title=Criteria]
-
-The linebreak algorithm uses some heuristics for determining the badness of a
-line. In most cases that works quite well. Of course one can run into a bad
-result when one has a large document of weird (extreme) constraints and it can be
-tempting to mess around with parameters which then of course can lead to bad
-results in other places. A solution is is to locally tweak penalties or looseness
-but one can also just accept the occasional less optimal result (after all there
-are plenty occasions to make a document look bad otherwise so best focus on the
-average first). That said, it is tempting to see if changing the hard codes
-criteria makes a difference. Experiments with this demonstrated the usual: when
-asked what looks best contradictions mix with expectations and being triggered by
-events that one related to \TEX, like successive hyphenated lines.
-
-The \prm {linebreakcriterion} parameter can be set to a value made from four bytes. We're
-not going to explain the magic numbers because they come from and are discussed in original
-\TEX. It is enough to know that we have four criteria:
-
-\starttabulate[|l|l|p|]
-\DB magic \BC bound to   \NC bytes      \NC \NR
-\TB
-\NC 12    \NC semi tight \NC 0x7F...... \NC \NR
-\NC 12    \NC decent     \NC 0x..7F.... \NC \NR
-\NC 12    \NC semi loose \NC 0x....7F.. \NC \NR
-\NC 99    \NC loose      \NC 0x......7F \NC \NR
-\LL
-\stoptabulate
-
-These four values can be changed according to the above pattern and are limited
-to the range 1\endash127 which is plenty especially when one keeps in mind that
-the actual useful values sit around the 12 anyway. Values outside the range (and
-therefore an all|-|over zero assignment) makes the defaults kick in.
-
-The original decisions are made in the following way:
-
-\starttyping
-function loose(badness)
-    if badness > loose_criterion then
-        return very_loose_fit
-    elseif badness > decent_criterion then
-        return loose_fit
-    else {
-        return decent_fit
-    end
-end
-
-function tight(badness)
-    if badness > decent_criterion then
-        return tight_fit
-    else {
-        return decent_fit
-    end
-end
-\stoptyping
-
-while in \LUAMETATEX\ we use (again in \LUA speak):
-
-\starttyping
-function loose(badness)
-    if badness > loose then
-        return very_loose_fit
-    elseif badness > semi_loose then
-        return semi_loose_fit
-    elseif badness > decent then
-        return loose_fit
-    else
-        return decent_fit
-    end
-end
-
-function tight(badness)
-    if badness > semi_tight then
-        return semi_tight_fit
-    else if badness > decent then
-        return tight_fit
-    else
-        return decent_fit
-    end
-end
-\stoptyping
-
-So we have a few more steps to play with. But don't be disappointed when it
-doesn't work out as you expect. Don Knuth did a good job on the heuristics and
-after many decades there is no real need to change something. Consider it a
-playground.
-
-The parameter \prm {ignoredepthcriterion} is set to -1000pt at startup and is a
-special signal for \prm {prevdepth}. You can change the value locally for
-educational purposes but best not mess with this standard value in production
-code unless you want special effects.
-
-\stopsubsection
-
-\stopsection
-
-\startsection[title={Inserts}]
-
-Inserts are tightly integrated into the page builder. Depending on penalties and
-available space they end up on the same page as were they got injected or they
-move to following pages, either or not split.
-
-In traditional \TEX\ inserts are controlled by registers. A quadruple of box,
-skip, dimen and count registers with the same number acts as an insert class.
-Details can be found in the \TEX book. A side effect of this is that we only have
-these four properties bound to class, other properties of inserts are driven by
-shared parameters. Another side effect is that register management has to make
-sure that these foursome get \quote {allocates} as set and not clashes with other
-register allocations.
-
-In \LUAMETATEX\ you can set the \prm {insertmode} to a non zero value in which case
-inserts are not using the register pool but have their own (global) resources. For
-now this is mode driven (for compatibility reasons) and once set or when an
-insert has been accessed, this mode is frozen, so  this parameter can be set
-very early in the macro package loading process.
-
-
-\starttabulate[|l|l|p|]
-\DB primitive               \BC traditional            \BC explanation \NC \NR
-\TB
-\NC \prm {insertdistance}   \NC skip                   \NC the space before the first instance (on a page) \NC \NR
-\NC \prm {insertmultiplier} \NC count                  \NC a factor that is used to calculate the height used \NC \NR
-\NC \prm {insertlimit}      \NC dimen                  \NC the maximum amount of space on a page to be taken \NC \NR
-\NC \prm {insertpenalty}    \NC \prm {insertpenalties} \NC the floating penalty (used when set) \NC \NR
-\NC \prm {insertmaxdepth}   \NC \prm {maxdepth}        \NC the maximum split depth (used when set) \NC \NR
-\NC \prm {insertstorage}    \NC                        \NC signals that the insert has to be stored for later \NC \NR
-\NC \prm {insertheight}     \NC \prm {ht} box / index  \NC the accumulated height of the inserts so far \NC \NR
-\NC \prm {insertdepth}      \NC \prm {dp} box / index  \NC the current depth of the inserts so far \NC \NR
-\NC \prm {insertwidth}      \NC \prm {wd} box / index  \NC the width of the inserts \NC \NR
-\NC \prm {insertbox}        \NC box / index            \NC the boxed content \NC \NR
-\NC \prm {insertcopy}       \NC box / index            \NC a copy of the boxed content \NC \NR
-\NC \prm {insertunbox}      \NC box / index            \NC the unboxed content \NC \NR
-\NC \prm {insertuncopy}     \NC box / index            \NC a copy of the unboxed content \NC \NR
-\NC \prm {insertuncopy}     \NC box / index            \NC a copy of the unboxed content \NC \NR
-\NC \prm {insertprogress}   \NC box / index            \NC the currently accumulated height \NC \NR
-\LL
-\stoptabulate
-
-These primitives takes an insert class number. The \prm {insertpenalties}
-primitives is unchanged, as is the \LUATEX\ \prm {insertheights} one. When \prm
-{insertstoring} is set 1, all inserts that have their storage flag set will be
-saved. Think of a multi column setup where inserts have to end up in the last
-column. If there are three columns, the first two will store inserts. Then when
-the last column is dealt with \prm {insertstoring} can be set to 2 and that will
-signal the builder that we will inject the inserts. In both cases, the value of
-this register will be set to zero so that it doesn't influence further
-processing. You can use \prm {ifinsert} to check if an insert box is void. More
-details about these (probably experimental for a while) features can be found in
-documents that come with \CONTEXT.
-
-A limitation of inserts is that when they are buried too deep, a property they
-share with inserts, they become invisible This can be dealt with by the migration
-feature described in an upcoming section.
-
-The \LUAMETATEX\ engine has some tracing built in that is enabled by setting \prm
-{tracinginserts} to a positive value.
-
-\stopsection
-
-\startsection[title={Marks}]
-
-\topicindex {marks}
-
-Marks are kind of signal nodes in the list that refer to stored token lists. When
-a page has been split off and is handed over to the output routine these signals
-are resolved into first, top and bottom mark references that can (for instance)
-be used for running headers.
-
-In \ETEX\ the standard \TEX\ primitives \prm {mark}, \prm {firstmark}, \prm
-{topmark}, \prm {botmark}, \prm {splitfirstmark} and \prm {splitbotmark} have
-been extended with plural forms that accent a number before the token list. That
-number indicates a mark class.
-
-In addition to the mark fetch commands, we also have access to the last set
-mark in the given class with \prm {currentmarks}:
-
-\startsyntax
-\currentmarks <16-bit number>
-\stopsyntax
-
-A problem with marks is that one cannot really reset them. Mark states are kept
-in the node lists and only periodically the state is snapshot into the global
-state variables. The \LUATEX\ engine can reset these global states with \prm
-{clearmarks} but that's only half a solution. In \LUAMETATEX\ we have \prm
-{flushmarks} which, like \prm {marks}, puts a node in the list that does a reset.
-This permits implementing controlled resets of specific marks at the cost of a
-possible interfering mode, but that can normally be dealt with rather well.
-
-The \prm {clearmarks} primitive complements the \ETEX\ mark primitives and clears
-a mark class completely, resetting all three connected mark texts to empty. It is
-an immediate command (no synchronization node is used).
-
-\startsyntax
-\clearmarks <16-bit number>
-\stopsyntax
-
-The \prm {flushmarks} variant is delayed but puts a (mark) node in the list as
-signal (we could have gone for a keyword to \prm {marks} instead).
-
-\startsyntax
-\flushmarks <16-bit number>
-\stopsyntax
-
-Another problem with marks is that when they are buried too deep, a property they
-share with inserts, they become invisible. This can be dealt with by the
-migration feature described in the next section.
-
-The \LUAMETATEX\ engine has some tracing built in that is enabled by setting \prm
-{tracingmarks} to a positive value. When set to~1 the page builder shows the set
-values, and when set to a higher value details about collecting them are shown.
-
-\stopsection
-
-\startsection[title={Adjusts}]
-
-The \prm {vadjust} primitive injects something in the vertical list after the
-line where it ends up. In \PDFTEX\ the \type {pre} keyword was added so that one
-could force something before a previous line (actually this was something that we
-needed in \CONTEXT\ \MKII). The \LUAMETATEX\ engine also supports the \type {post}
-keyword.
-
-We support a few more keywords: \type {before} will prepend the adjustment to the
-already given one, and \type {after} will append it. The \type {index} keyword
-expects an integer and relates that to the current adjustment. This index is
-passed to an (optional) callback when the adjustment is finally moved to the
-vertical list. That move is actually delayed because like inserts and marks these
-(vertical) adjustments can migrate to the \quote {outer} vertical level.
-
-The main reason for the index having no influence on the order is that this
-primitive already could be used multiple times and order is determined by usage.
-\footnote {Under consideration is to let the callback mess with the flushing
-order.}
-
-The \LUAMETATEX\ engine has some tracing built in that is enabled by setting \prm
-{tracingadjusts} to a positive value. Currently there is not that much tracing
-which is why the value has to be at least 2 in order to be compatible with other
-(detailed) tracers.
-
-\stopsection
-
-\startsection[title={Migration}]
-
-There are a few injected node types that are used to track information: marks,
-inserts and adjusts (see previous sections). Marks are token lists that can be
-used to register states like section numbers and titles they are synchronized in
-the page builder when a page is shipped out. Inserts are node lists that get
-rendered and relate to specific locations and these are flushed with the main
-vertical list which also means that in calculating page breaks they need to be
-taken into account. An Adjust is material that gets injected before or after a
-line. Strictly spoke local boxes also in this repertoire but they are dealt with
-in the par builder.
-
-A new primitive \prm {automigrationmode} can be used to let deeply burried marks
-and inserts bubble up to the outer level.
-
-\starttabulate[|c|p|]
-\DB value \BC explanation \NC \NR
-\TB
-\NC \the\markautomigrationcode   \NC migrate marks in the par builder \NC \NR
-\NC \the\insertautomigrationcode \NC migrate inserts in the par builder  \NC \NR
-\NC \the\adjustautomigrationcode \NC migrate adjusts in the par builder  \NC \NR
-\NC \the\preautomigrationcode    \NC migrate prebox material in the page builder \NC \NR
-\NC \the\postautomigrationcode   \NC migrate postbox material in the page builder \NC \NR
-\LL
-\stoptabulate
-
-If you want to migrate marks and inserts you need to set all these flags. Migrated
-marks and inserts end up as post|-|box properties and will be handled in the page
-builder as such. At the \LUA\ end you can add pre- and post|-|box material too.
-
-The primitive register \prm {holdingmigrations} is a bitset that can be used to temporarily
-disable migrations. It is a generalization of \prm {holdinginserts}.
-
-\starttabulate[|cT|p|]
-\DB value \BC explanation \NC \NR
-\TB
-\NC 0x01  \NC marks   \NC \NR
-\NC 0x02  \NC inserts \NC \NR
-\NC 0x04  \NC adjusts \NC \NR
-\LL
-\stoptabulate
-
-Migrates material is bound to boxes so boxed material gets unboxed it is taken
-into account, but you should be aware of potential side effects. But then, marks,
-inserts and adjusts always demanded care.
-
-\stopsection
-
-\startsection[title={Pages}]
-
-The page builder can be triggered by (for instance) a penalty but you can also
-use \prm {pageboundary}. This will trigger the page builder but not leave
-anything behind.
-
-{\em In due time we will discuss \prm {pagevsize}, \prm {pageextragoal} and \prm
-{lastpageextra} but for now we treat them as very experimental and they will be
-tested in \CONTEXT, also in discussion with users.}
-
-\stopsection
-
-\startsection[title={Paragraphs}]
-
-The numeric primitive \prm {lastparcontext} inspector reports the current context
-in which a paragraph triggering commands happened. The numbers can be queried
-with \type {tex.getparcontextvalues()} and currently are: \showvaluelist
-{tex.getparcontextvalues()}. As with the other \type {\last...} primitives this
-variable is global.
-
-Traditional \TEX\ has the \prm {parfillskip} parameter that determines the way
-the last line is filled. In \LUAMETATEX\ we also have \prm {parfillleftskip}. The
-counterparts for the first line are \prm {parinitleftskip} and \prm
-{parinitrightskip}. We also have \prm {parfillrightskip} as consistency alias.
-
-\startbuffer
-\leftskip        2em
-\rightskip       \leftskip
-\parfillskip     \zeropoint plus 1 fill
-\parfillleftskip \parfillskip
-\parinitleftskip \parfillleftskip
-\parinitrightskip\parfillleftskip
-\input ward
-\stopbuffer
-
-\typebuffer This results in: \par \start \em \getbuffer \par \stop
-
-An additional tracing primitive \prm {tracingfullboxes} reports details about the
-encountered overfull boxes. This can be rather verbose!
-
-Normally \TEX\ will insert an empty hbox when paragraph indentation is requested
-but when the second bit in \prm {normalizelinemode} has been set \LUAMETATEX\
-will in a glue node instead. You can zero the set value with \prm {undent} unless
-of course some more has been inserted already.
-
-\startbuffer
-\parinitleftskip1cm \parindent 1cm \indent test \par
-\parinitleftskip1cm \parindent 1cm \undent test \par
-\parinitleftskip1cm \parindent 1cm \indent \undent test \par
-\parinitleftskip1cm \parindent 1cm \indent \strut \undent test \par
-\stopbuffer
-
-\typebuffer \startpacked \getbuffer \stoppacked
-
-By setting \prm {tracingpenalties} to a positive value penalties related to
-windows, clubs, lines etc.\ get reported to the output channels.
-
-\stopsection
-
-\startsection[title={Local boxes}]
-
-As far as I know the \OMEGA/\ALEPH\ local box mechanism is mostly in those
-engines in order to support repetitive quotes. In \LUATEX\ this mechanism has
-been made more robust and in \LUAMETATEX\ it became more tightly integrated in
-the paragraph properties. In order for it to be more generic and useful, it got
-more features. For instance it is a bit painful to manage with respect to
-grouping (which is a reason why it's not that much used). The most interesting
-property is that the dimensions are taken into account when a paragraph is
-broken into lines.
-
-There are three commands: \prm {localleftbox}, \prm {localrightbox} and the
-\LUAMETATEX\ specific \prm {localmiddlebox} which is basically a right box but
-when we pass these boxes to a callback they can be distinguished (we could have
-used the index but this was a cheap extra signal so we keep it).
-
-These commands take optional keywords. The \type {index} keyword has to be
-followed by an integer. This index determines the order which doesn't introduce a
-significant compatibility issue: local boxes are hardly used and originally had
-only one instance.
-
-The \type {par} keyword forces the box to be added to the current paragraph head.
-This permits setting them when a paragraph has already started. The
-implementation of these boxes is done via so called (local) paragraph nodes and
-there is one at the start of each paragraph.
-
-The \type {local} keyword tells this mechanism not to update the registers that
-keep these boxes. In that case a next paragraph will start fresh. The \type
-{keep} option will do the opposite and retain the box after a group ends.
-
-The commands: \prm {localleftboxbox}, \prm {localrightboxbox} and \prm
-{localmiddleboxbox} return a copy of the current related register content.
-
-\stopsection
-
-\startsection[title={Leaders}]
-
-Leaders are flexible content that are basically just seen as glue and it is up to
-the backend to apply the effective glue to the result as seen in the backend
-(like a rule of box). This means that the frontend doesn't do anything with the
-fact that we have a regular \prm {leaders}, a \prm {gleaders}, \prm {xleaders} or
-\prm {cleaders}. The \prm {uleaders} that has been added in \LUAMETATEX\ is just
-that: an extra leader category. The main difference is that the width of the
-given box is added to the glue. That way we create a stretchable box.
-
-\startbuffer
-\unexpandedloop 1 30 1 {x             \hbox{1 2 3}                                                           x }
-\unexpandedloop 1 30 1 {x {\uleaders \hbox{1 2 3}\hskip 0pt plus 10pt               minus 10pt\relax}        x }
-\unexpandedloop 1 30 1 {x {\uleaders \hbox{1 2 3}\hskip 0pt plus  \interwordstretch minus \interwordshrink}  x }
-\unexpandedloop 1 30 1 {x {\uleaders \hbox{1 2 3}\hskip 0pt plus 2\interwordstretch minus 2\interwordshrink} x }
-\stopbuffer
-
-\typebuffer
-
-Here are some examples:
-
-\startlines
-\getbuffer
-\stoplines
-
-So the flexibility fo the box plays a role in the line break calculations. But in
-the end the backend has to do the work.
-
-\startbuffer[a]
-{\green \hrule width \hsize} \par \vskip2pt
-\vbox to 40pt {
-    {\red\hrule width \hsize} \par \vskip2pt
-    \vbox {
-        \vskip2pt {\blue\hrule width \hsize} \par
-        \vskip 10pt plus 10pt minus 10pt
-        {\blue\hrule width \hsize} \par \vskip2pt
-    }
-    \vskip2pt {\red\hrule width \hsize} \par
-}
-\vskip2pt {\green \hrule width \hsize} \par
-\stopbuffer
-
-\startbuffer[b]
-{\green \hrule width \hsize} \par \vskip2pt
-\vbox to 40pt {
-    {\red\hrule width \hsize} \par \vskip2pt
-    \uleaders\vbox {
-        \vskip2pt {\blue\hrule width \hsize} \par
-        \vskip 10pt plus 10pt minus 10pt
-        {\blue\hrule width \hsize} \par \vskip2pt
-    }\vskip 0pt plus 10pt minus 10pt
-    \vskip2pt {\red\hrule width \hsize} \par
-}
-\vskip2pt {\green \hrule width \hsize} \par
-\stopbuffer
-
-\typebuffer[a]
-
-with
-
-\typebuffer[b]
-
-In the first case we get the this:
-
-\startlinecorrection
-\getbuffer[a]
-\stoplinecorrection
-
-but with \prm {uleaders} we get:
-
-\startlinecorrection
-\normalizeparmode\zerocount
-\getbuffer[b]
-\stoplinecorrection
-
-or this:
-
-\startlinecorrection
-\normalizeparmode"FF
-\getbuffer[b]
-\stoplinecorrection
-
-In the second case we flatten the leaders in the engine by setting the second bit
-in the \prm {normalizeparmode} parameter (\type {0x2}). We actually do the same
-with \prm {normalizelinemode} where bit 10 is set (\type {0x200}). The \type
-{delay} keyword can be passed with a box to prevent flattening. If we don't do
-this in the engine, the backend has to take care of it. In principle this permits
-implementing variants in a macro package. Eventually there will be plenty examples in
-the \CONTEXT\ code base and documentation. Till then, consider this experimental.
-
-\stopsection
-
-\startsection[title=Alignments]
-
-The primitive \prm {alignmark} duplicates the functionality of \type {#} inside
-alignment preambles, while \prm {aligntab} duplicates the functionality of \type
-{&}. The \prm {aligncontent} primitive directly refers to an entry so that one
-does not get repeated.
-
-Alignments can be traced with \prm {tracingalignments}. When set to~1 basics
-usage is shown, for instance of \prm {noalign} but more interesting is~2 or more:
-you then get the preambles reported.
-
-The \prm {halign} (tested) and \prm {valign} (yet untested) primitives accept a
-few keywords in addition to \type {to} and \type {spread}:
-
-\starttabulate[|l|p|]
-\DB keyword \BC explanation \NC \NR
-\TB
-\NC \type {attr}     \NC set the given attribute to the given value \NC \NR
-\NC \type {callback} \NC trigger the \type {alignment_filter} callback \NC \NR
-\NC \type {discard}  \NC discard zero \prm {tabskip}'s \NC \NR
-\NC \type {noskips}  \NC don't even process zero \prm {tabskip}'s \NC \NR
-\NC \type {reverse}  \NC reverse the final rows \NC \NR
-\LL
-\stoptabulate
-
-In the preamble the \prm {tabsize} primitive can be used to set the width of a
-column. By doing so one can avoid using a box in the preamble which, combined
-with the sparse tabskip features, is a bit easier on memory when you produce
-tables that span hundreds of pages and have a dozen columns.
-
-The \prm {everytab} complements the \prm {everycr} token register but is sort of
-experimental as it might become more selective and powerful some day.
-
-The two primitives \prm {alignmentcellsource} and \prm {alignmentwrapsource} that
-associate a source id (integer) to the current cell and row (line). Sources and
-targets are experimental and are being explored in \CONTEXT\ so we'll see where
-that ends up in.
-
-{\em todo: callbacks}
-
-\stopsection
-
-\stopchapter
-
-\stopcomponent

Modified: trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametatex/luametatex-callbacks.tex
===================================================================
--- trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametatex/luametatex-callbacks.tex	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametatex/luametatex-callbacks.tex	2025-02-19 22:48:50 UTC (rev 74156)
@@ -2,50 +2,43 @@
 
 \environment luametatex-style
 
-\startcomponent luametatex-callbacks
+\startdocument[title=Callbacks]
 
-\startchapter[reference=callbacks,title={\LUA\ callbacks}]
+\startsection[title={Introduction}]
 
-\startsection[title={Registering callbacks}][library=callback]
+Right from the start of the \LUATEX\ project callbacks were the way to extend the
+engine. At various places in processing the document source and typesetting the
+text the engine checks if there is a callback set and if so, calls out to \LUA.
+Here we collect the various callbacks. For examples you can consult the \CONTEXT\
+code base.
 
-\topicindex{callbacks}
+The \type {callback} library has functions that register, find and list
+callbacks. Callbacks are \LUA\ functions that are called in well defined places.
+There are two kinds of callbacks: those that mix with existing functionality, and
+those that (when enabled) replace functionality. In most cases the second
+category is expected to behave similar to the built in functionality because in a
+next step specific data is expected. For instance, you can replace the
+hyphenation routine. The function gets a list that can be hyphenated (or not).
+The final list should be valid and is (normally) used for constructing a
+paragraph. Another function can replace the ligature builder and|/|or kern
+routine. Doing something else is possible but in the end might not give the user
+the expected outcome.
 
-\libindex{register}
-\libindex{list}
-\libindex{find}
-\libindex{known}
+In order for a callback to kick in you need register it. This can be permanent or
+temporarily.
 
-{\em The callbacks are a moving target. Don't bother me with questions about
-them. Some are new and/or experimental and therefore not yet documented. In
-\CONTEXT\ we can easily adapt interfaces so changes in these have no real effect
-on users. Of course in due time all will be official and documented.}
+\starttyping[option=LUA]
+id = callback.register(<t:string> callback_name, <function> func)
+id = callback.register(<t:string> callback_name, nil)
+id = callback.register(<t:string> callback_name, false)
+\stoptyping
 
-This library has functions that register, find and list callbacks. Callbacks are
-\LUA\ functions that are called in well defined places. There are two kinds of
-callbacks: those that mix with existing functionality, and those that (when
-enabled) replace functionality. In most cases the second category is expected to
-behave similar to the built in functionality because in a next step specific data
-is expected. For instance, you can replace the hyphenation routine. The function
-gets a list that can be hyphenated (or not). The final list should be valid and
-is (normally) used for constructing a paragraph. Another function can replace the
-ligature builder and|/|or kern routine. Doing something else is possible but in
-the end might not give the user the expected outcome.
+Here the \type {callback_name} is a predefined callback name as discusses in
+following sections. The function returns the internal \type {id} of the callback
+or \type {nil}, if the callback could not be registered. \LUAMETATEX\
+internalizes the callback function in such a way that it does not matter if you
+redefine a function accidentally.
 
-The first thing you need to do is registering a callback:
-
-\startfunctioncall
-id = callback.register(<string> callback_name, <function> func)
-id = callback.register(<string> callback_name, nil)
-id = callback.register(<string> callback_name, false)
-\stopfunctioncall
-
-Here the \syntax {callback_name} is a predefined callback name, see below. The
-function returns the internal \type {id} of the callback or \type {nil}, if the
-callback could not be registered.
-
-\LUATEX\ internalizes the callback function in such a way that it does not matter
-if you redefine a function accidentally.
-
 Callback assignments are always global. You can use the special value \type {nil}
 instead of a function for clearing the callback.
 
@@ -52,507 +45,672 @@
 For some minor speed gain, you can assign the boolean \type {false} to the
 non|-|file related callbacks, doing so will prevent \LUATEX\ from executing
 whatever it would execute by default (when no callback function is registered at
-all). Be warned: this may cause all sorts of grief unless you know \notabene
-{exactly} what you are doing!
+all). {\em This needs checking.}
 
-\startfunctioncall
-<table> info =
-    callback.list()
-\stopfunctioncall
+\starttyping[option=LUA]
+<table> info = callback.list()
+\stoptyping
 
 The keys in the table are the known callback names, the value is a boolean where
 \type {true} means that the callback is currently set (active).
 
-\startfunctioncall
+\starttyping[option=LUA]
 <function> f = callback.find(callback_name)
-\stopfunctioncall
+\stoptyping
 
 If the callback is not set, \type {find} returns \type {nil}. The \type {known}
 function can be used to check if a callback is supported.
 
-\startfunctioncall
-if callback.known("foo") then ... end
-\stopfunctioncall
+\starttyping[option=LUA]
+if callback.known("foo") then
+    -- do what is needed
+end
+\stoptyping
 
 \stopsection
 
-\startsection[title={File related callbacks},reference=iocallback][library=callback]
+\startsection[title=Files]
 
-\startsubsection[title={\cbk {find_format_file} and \cbk {find_log_file}}]
+\startsubsection[title=find_log_file]
 
-\topicindex{callbacks+format file}
-\topicindex{callbacks+log file}
+This is one of the callbacks that has to be set in order for the engine to work
+at all.
 
-These callbacks are called as:
+\starttyping[option=LUA]
+function (
+    <t:string> askedname
+)
+    return <t:string> foundname
+end
+\stoptyping
 
-\startfunctioncall
-<string> actualname =
-    function (<string> askedname)
-\stopfunctioncall
+\stopsubsection
 
-The \type {askedname} is a format file for reading (the format file for writing
-is always opened in the current directory) or a log file for writing.
+\startsubsection[title=find_format_file]
 
-\stopsubsection
+A format file is an efficient memory dump of the (in our case \CONTEXT) macro
+package. In \LUATEX\ it can have a mix of \TEX and \LUA\ code but one should be
+aware that storing the \LUA\ state is not up to the engine.
 
-\startsubsection[title={\cbk {open_data_file}}]
+\starttyping[option=LUA]
+function (<t:string> askedname)
+    return <t:string> foundname
+end
+\stoptyping
 
-\topicindex{callbacks+opening files}
+A format file can be read from any valid location but is always written in the
+current directory. When written the number of bytes for each section is reported.
+When read all kind of checks take place ijn order to intercept corruption or
+incompatibilities. Contrary to \LUATEX, the \LUAMETATEX\ is not (zip) compressed so,
+in spite of more aggressive compression of data otherwise the file is a bit larger.
 
-This callback function gets a filename passed:
+\stopsubsection
 
-\startfunctioncall
-<table> env = function (<string> filename)
-\stopfunctioncall
+\startsubsection[title=open_data_file]
 
-The return value is either the boolean value false or a table with two functions.
-A mandate \type {reader} function fill be called once for each new line to be
-read, the optional \type {close} function will be called once \LUATEX\ is done
-with the file.
+This callback function gets a filename passed. The return value is either the boolean
+value false or a table with two functions. A mandate \type {reader} function fill be
+called once for each new line to be read, the optional \type {close} function will
+be called once \LUATEX\ is done with the file.
 
-\LUATEX\ never looks at the rest of the table, so you can use it to store your
-private per|-|file data. Both the callback functions will receive the table as
+\starttyping[option=LUA]
+function (
+    <t:string> filename
+)
+    return <table> {
+        <function> reader(<table> environment) end,
+        <function> close (<table> environment) end,
+    }
+end
+\stoptyping
+
+\LUAMETATEX\ never looks at the rest of the table, so we can use it to store
+additional per|-|file data. Both the callback functions will receive the table as
 their only argument.
 
-% No longer needed anyway.
-%
-% \subsection{\cbk {if_end_of_file}}
-%
-% \topicindex{callbacks+checking files}
-%
-% This callback has no arguments and your function should return true or false. The
-% callback is triggered by \type {\ifeof}. It's up to the macro package to come up
-% with a reasonable implementation. By default the test is always true.
-%
-% \startfunctioncall
-% <boolean> eof =
-%     function ()
-% \stopfunctioncall
+\stopsubsection
 
+\startsubsection[title=start_file]
+
+This callback replaces the code that \LUAMETATEX\ prints when a file is opened like
+\type {(filename} for regular files. The category is a number:
+
+\starttyping[option=LUA]
+function (
+    <t:integer> category,
+    <t:string>  filename
+)
+    -- no return values
+end
+\stoptyping
+
+The following categories can occur:
+
+\starttabulate[|c|l|]
+% \DB value  \BC meaning \NC \NR
+% \TB
+\FL
+\BC value  \BC meaning \NC \NR
+\ML
+\NC 1 \NC a normal data file, like a \TEX\ source \NC \NR
+\NC 2 \NC a font map coupling font names to resources \NC \NR
+\NC 3 \NC an image file (\type {png}, \type {pdf}, etc) \NC \NR
+\NC 4 \NC an embedded font subset \NC \NR
+\NC 5 \NC a fully embedded font \NC \NR
+\LL
+\stoptabulate
+
 \stopsubsection
 
+\startsubsection[title=stop_file]
+
+This callback replaces the code that \LUAMETATEX\ prints when a file is closed like
+the \type {)} for regular files.
+
+\starttyping[option=LUA]
+function (
+    <t:integer> category
+)
+    -- no return values
+end
+\stoptyping
+
+\stopsubsection
+
 \stopsection
 
-\startsection[title={Data processing callbacks}][library=callback]
+\startsection[title=Running]
 
-\startsubsection[title={\cbk {process_jobname}}]
+\startsubsection[title=process_jobname]
 
-\topicindex{callbacks+jobname}
-
-This callback allows you to change the jobname given by \prm {jobname} in \TEX\
-and \type {tex.jobname} in Lua. It does not affect the internal job name or the
+This callback allows you to change the jobname given by \type {\jobname} in \TEX\
+and \type {tex.jobname} in \LUA. It does not affect the internal job name or the
 name of the output or log files.
 
-\startfunctioncall
-function(<string> jobname)
-    return <string> adjusted_jobname
+\starttyping[option=LUA]
+function (
+    <t:string> jobname
+)
+    return <t:string> adjusted_jobname
 end
-\stopfunctioncall
+\stoptyping
 
 The only argument is the actual job name; you should not use \type {tex.jobname}
 inside this function or infinite recursion may occur. If you return \type {nil},
-\LUATEX\ will pretend your callback never happened. This callback does not
+\LUAMETATEX\ will pretend your callback never happened. This callback does not
 replace any internal code.
 
 \stopsubsection
 
-\stopsection
+\startsubsection[title=pre_dump]
 
-\startsection[title={Node list processing callbacks}][library=callback]
+This function is called just before dumping to a format file starts. It does not
+replace any code and there are neither arguments nor return values. It can be used to do some
+cleanup and other housekeeping.
 
-The description of nodes and node lists is in~\in{chapter}[nodes].
+\starttyping[option=LUA]
+function (
+    -- no arguments
+)
+    -- no return values
+end
+\stoptyping
 
-\startsubsection[title={\cbk {contribute_filter}}]
+\stopsubsection
 
-\topicindex{callbacks+contributions}
+\startsubsection[title=start_run]
 
-This callback is called when \LUATEX\ adds contents to list:
+\starttyping[option=LUA]
+function(
+    -- no arguments
+)
+    -- no return values
+end
+\stoptyping
 
-\startfunctioncall
-function(<string> extrainfo)
+This callback replaces the code that prints \LUATEX's banner. Note that for
+successful use, this callback has to be set in the \LUA\ initialization script,
+otherwise it will be seen only after the run has already started.
+
+\stopsubsection
+
+\startsubsection[title=stop_run]
+
+\starttyping[option=LUA]
+function(
+    -- no arguments
+)
+    -- no return values
 end
-\stopfunctioncall
+\stoptyping
 
-The string reports the group code. From this you can deduce from
-what list you can give a treat.
+This callback replaces the code that prints \LUATEX's statistics and \quote
+{output written to} messages. The engine can still do housekeeping and therefore
+you should not rely on this hook for postprocessing the \PDF\ or log file.
 
-\starttabulate[|l|p|]
-\DB value             \BC explanation                                  \NC \NR
-\TB
-\NC \type{pre_box}    \NC interline material is being added            \NC \NR
-\NC \type{pre_adjust} \NC \prm {vadjust} material is being added       \NC \NR
-\NC \type{box}        \NC a typeset box is being added (always called) \NC \NR
-\NC \type{adjust}     \NC \prm {vadjust} material is being added       \NC \NR
-\LL
-\stoptabulate
-
 \stopsubsection
 
-\startsubsection[title={\cbk {buildpage_filter}}]
+\startsubsection[title=intercept_tex_error]
 
-\topicindex{callbacks+building pages}
+This callback is run from inside the \TEX\ error function, and the idea is to
+allow you to do some extra reporting on top of what \TEX\ already does (none of
+the normal actions are removed). You may find some of the values in the \type
+{status} table useful. The \TEX\ related callback gets two arguments: the current
+processing mode and a boolean indicating if there was a runaway.
 
-This callback is called whenever \LUATEX\ is ready to move stuff to the main
-vertical list. You can use this callback to do specialized manipulation of the
-page building stage like imposition or column balancing.
 
-\startfunctioncall
-function(<string> extrainfo)
+\starttyping[option=LUA]
+function (
+    -- no arguments
+)
+    -- no return values
 end
-\stopfunctioncall
+\stoptyping
 
-The string \type {extrainfo} gives some additional information about what \TEX's
-state is with respect to the \quote {current page}. The possible values for the
-\cbk {buildpage_filter} callback are:
+\stopsubsection
 
-\starttabulate[|l|p|]
-\DB value                  \BC explanation                             \NC \NR
-\TB
-\NC \type{alignment}       \NC a (partial) alignment is being added    \NC \NR
-\NC \type{after_output}    \NC an output routine has just finished     \NC \NR
-\NC \type{new_graf}        \NC the beginning of a new paragraph        \NC \NR
-\NC \type{vmode_par}       \NC \prm {par} was found in vertical mode   \NC \NR
-\NC \type{hmode_par}       \NC \prm {par} was found in horizontal mode \NC \NR
-\NC \type{insert}          \NC an insert is added                      \NC \NR
-\NC \type{penalty}         \NC a penalty (in vertical mode)            \NC \NR
-\NC \type{before_display}  \NC immediately before a display starts     \NC \NR
-\NC \type{after_display}   \NC a display is finished                   \NC \NR
-\NC \type{end}             \NC \LUATEX\ is terminating (it's all over) \NC \NR
-\LL
-\stoptabulate
+\startsubsection[title=intercept_lua_error]
 
+This callback is similar to the one discussed in the previous section but for
+\LUA. Of course we should in a recoverable state for this to work well.
+
+\starttyping[option=LUA]
+function (
+    -- no arguments
+)
+    -- no return values
+end
+\stoptyping
+
 \stopsubsection
 
-\startsubsection[title={\cbk {insert_distance}}]
+\startsubsection[title=show_error_message]
 
-\topicindex{callbacks+inserts}
+This callback replaces the code that prints the error message. The usual
+interaction after the message is not affected but it is best to quit the run
+after reporting.
 
-This callback is called when the page builder adds an insert. There is not much
-control over this mechanism but this callback permits some last minute
-manipulations of the spacing before an insert, something that might be handy when
-for instance multiple inserts (types) are appended in a row.
-
-\startfunctioncall
-function(<number> n, <number> i)
-    return <number> register
+\starttyping[option=LUA]
+function (
+    -- no arguments
+)
+    -- no return values
 end
-\stopfunctioncall
+\stoptyping
 
-with
+\stopsubsection
 
-\starttabulate[|l|p|]
-\DB value    \BC explanation             \NC \NR
-\TB
-\NC \type{n} \NC the insert class        \NC \NR
-\NC \type{i} \NC the order of the insert \NC \NR
-\LL
-\stoptabulate
+\startsubsection[title=show_warning_message]
 
-The return value is a number indicating the skip register to use for the
-prepended spacing. This permits for instance a different top space (when \type
-{i} equals one) and intermediate space (when \type {i} is larger than one). Of
-course you can mess with the insert box but you need to make sure that \LUATEX\
-is happy afterwards.
+This callback replaces the code that prints a (non fatal) warning message. The
+usual interaction after the message is not affected.
 
+\starttyping[option=LUA]
+function (
+    -- no arguments
+)
+    -- no return values
+end
+\stoptyping
+
 \stopsubsection
 
-\startsubsection[title={\cbk {pre_linebreak_filter}}]
+\startsubsection[title=wrapup_run]
 
-\topicindex{callbacks+linebreaks}
 
-This callback is called just before \LUATEX\ starts converting a list of nodes
-into a stack of \prm {hbox}es, after the addition of \prm {parfillskip}.
+This callback is called after the \PDF\ and log files are closed. Use it at your own
+risk. efine_f
+risk.
 
-\startfunctioncall
-function(<node> head, <string> groupcode)
-    return <node> newhead
+\starttyping[option=LUA]
+function (
+    -- no arguments
+)
+    -- no return values
 end
-\stopfunctioncall
+\stoptyping
 
-The string called \type {groupcode} identifies the nodelist's context within
-\TEX's processing. The range of possibilities is given in the table below, but
-not all of those can actually appear in \cbk {pre_linebreak_filter}, some are
-for the \cbk {hpack_filter} and \cbk {vpack_filter} callbacks that will be
-explained in the next two paragraphs.
+\stopsubsection
 
-\starttabulate[|l|p|]
-\DB value                \BC explanation                                 \NC \NR
-\TB
-\NC \type{<empty>}       \NC main vertical list                          \NC \NR
-\NC \type{hbox}          \NC \prm {hbox} in horizontal mode              \NC \NR
-\NC \type{adjusted_hbox} \NC \prm {hbox} in vertical mode                \NC \NR
-\NC \type{vbox}          \NC \prm {vbox}                                 \NC \NR
-\NC \type{vtop}          \NC \prm {vtop}                                 \NC \NR
-\NC \type{align}         \NC \prm {halign} or \prm {valign}              \NC \NR
-\NC \type{disc}          \NC discretionaries                             \NC \NR
-\NC \type{insert}        \NC packaging an insert                         \NC \NR
-\NC \type{vcenter}       \NC \prm {vcenter}                              \NC \NR
-\NC \type{local_box}     \NC \prm {localleftbox} or \prm {localrightbox} \NC \NR
-\NC \type{split_off}     \NC top of a \prm {vsplit}                      \NC \NR
-\NC \type{split_keep}    \NC remainder of a \prm {vsplit}                \NC \NR
-\NC \type{align_set}     \NC alignment cell                              \NC \NR
-\NC \type{fin_row}       \NC alignment row                               \NC \NR
-\LL
-\stoptabulate
+\startsubsection[title=handle_overload]
 
-As for all the callbacks that deal with nodes, the return value can be one of
-three things:
+One characteristic of \TEX\ is that you have quite some control over what a
+control sequence triggers. For instance, \type {\hbox} normally starts a
+horizontal box but a user can redefine this primitive as macro to do whatever is
+required. This means that when other macros use this primitive their behavior
+will change. One way out of this is using aliases, for instance:
 
-\startitemize
-\startitem
-    boolean \type {true} signals successful processing
-\stopitem
-\startitem
-    \type {<node>} signals that the \quote {head} node should be replaced by the
-    returned node
-\stopitem
-\startitem
-    boolean \type {false} signals that the \quote {head} node list should be
-    ignored and flushed from memory
-\stopitem
-\stopitemize
+\starttyping
+\normalsetbox0\normalhbox{test}
+\normalifdim\normalwd0>10pt \normalbox0 \normalfi
+\stoptyping
 
-This callback does not replace any internal code.
+But even these normal aliases can be redefined. Of course you can use special
+characters like \type {_} in names but once you start doing this:
 
-\stopsubsection
+\starttyping
+\p_setbox0\p_hbox{test}
+\p_ifdim\p_wd0>10pt \p_box0 \p_fi
+\stoptyping
 
-\startsubsection[title={\cbk {linebreak_filter}}]
+you should wonder if you still offer the user \TEX\ as a programming language.
+It's not the route that \CONTEXT\ takes.
 
-\topicindex{callbacks+linebreaks}
+In \LUAMETATEX\ every macro (including primitives) can be flagged and that happens
+with so called prefixes. Traditional \TEX\ offers:
 
-This callback replaces \LUATEX's line breaking algorithm.
+\starttyping
+\global\def\foo{...}
+\long  \def\foo{...} % no-op
+\outer \def\foo{...} % no-op
+\stoptyping
 
-\startfunctioncall
-function(<node> head, <boolean> is_display)
-    return <node> newhead
-end
-\stopfunctioncall
+The \type {\long} and \type {\outer} made sense at that time but are no-ops in
+\LUAMETATEX: every macro can take \type {\par} equivalents as arguments and can
+be \ defined at every level. The \ETEX\ extensions introduced this prefix:
 
-The returned node is the head of the list that will be added to the main vertical
-list, the boolean argument is true if this paragraph is interrupted by a
-following math display.
+\starttyping
+\protected\def\foo{...}
+\stoptyping
 
-If you return something that is not a \type {<node>}, \LUATEX\ will apply the
-internal linebreak algorithm on the list that starts at \type {<head>}.
-Otherwise, the \type {<node>} you return is supposed to be the head of a list of
-nodes that are all allowed in vertical mode, and at least one of those has to
-represent an \prm {hbox}. Failure to do so will result in a fatal error.
+which prevents expansion unless the value is really expected (needed). The
+\LUAMETATEX\ engine added:
 
-Setting this callback to \type {false} is possible, but dangerous, because it is
-possible you will end up in an unfixable \quote {deadcycles loop}.
+\starttyping
+\semiprotected\def\foo{...}
+\stoptyping
 
-\stopsubsection
+but when eventually I see no reason to use it in \CONTEXT\ it might be dropped. A
+special prefix is:
 
-\startsubsection[title={\type {append_to_vlist_filter}}]
+\starttyping
+\constant\def\foo{...}
+\stoptyping
 
-\topicindex{callbacks+contributions}
+This effectively is equivalent to \type {\edef} but signals that in some
+scenarios (like an \type {\csname} equivalent situation) no expansion and
+checking has to happen which improves performance.
 
-This callback is called whenever \LUATEX\ adds a box to a vertical list (the
-\type {mirrored} argument is obsolete):
+These two prefixes are just signals to \LUA\ driven functionality:
 
-\startfunctioncall
-function(<node> box, <string> locationcode, <number> prevdepth)
-    return list [, prevdepth [, checkdepth ] ]
-end
-\stopfunctioncall
+\starttyping
+\deferred  \foo
+\immediate \foo
+\stoptyping
 
-It is ok to return nothing or \type {nil} in which case you also need to flush
-the box or deal with it yourself. The prevdepth is also optional. Locations are
-\type {box}, \type {alignment}, \type {equation}, \type {equation_number} and
-\type {post_linebreak}. When the third argument returned is \type {true} the
-normal prevdepth correction will be applied, based on the first node.
+The prefixes do nothing except when \type {\foo} are \LUA\ calls that can use
+this information to adapt behavior. Because we have no backend the macro package
+has to come up with equivalents for e.g.\ \type {\write} than can be immediate or
+deferred (default) operations.
 
-\stopsubsection
+Another prefix relates to alignments:
 
-\startsubsection[title={\cbk {post_linebreak_filter}}]
+\starttyping
+\noaligned\protected\def\foo{...}
+\stoptyping
 
-\topicindex{callbacks+linebreaks}
+Which makes a macro accepted between alignment rows where otherwise protected
+macros will trigger an error due to look ahead.
 
-This callback is called just after \LUATEX\ has converted a list of nodes into a
-stack of \prm {hbox}es.
+A definition with \type {\def} or \type {\gdef} can take arguments and these can be
+made optional with:
 
-\startfunctioncall
-function(<node> head, <string> groupcode)
-    return <node> newhead
-end
-\stopfunctioncall
+\starttyping
+\def\tolerant[#1]{...}
+\stoptyping
 
-This callback does not replace any internal code.
+but there are more features related to tolerant:
 
-\stopsubsection
+\starttyping
+\def\tolerant[#1]#*[#2]{...}
+\stoptyping
 
-\startsubsection[title={\cbk {glyph_run}}]
+that are discusses in low level manuals. Users can define macros that are
+reported (in tracing) as if they were primitives:
 
-\topicindex{callbacks+fonts}
-\topicindex{callbacks+hyphenation}
-\topicindex{callbacks+kerning}
-\topicindex{callbacks+ligature building}
+\starttyping
+\untraced\protected\def\foo{...}
+\stoptyping
 
-When set this callback is triggered when \TEX\ normally handles the ligaturing
-and kerning. In \LUATEX\ you use the \typ {hpack_filter} and \typ
-{per_linebreak_filter} callbacks for that (where each passes different
-arguments). This callback doesn't get triggered when there are no glyphs (in
-\LUATEX\ this optimization is controlled by a a variable).
+The prefixes \type {\constrained} and \type {\retained} relate to register values
+being saved and restored in groups. The \type {\inherited} is used in for
+instance math spacing assignments where we need dynamic binding to for instance
+\type {\muskip} registers (instead of values).
 
-\startfunctioncall
-function(<node> head, <string> groupcode, <number> direction])
-    return <node> newhead
-end
-\stopfunctioncall
+Although not related to the callback discussed here we mentioned these prefixes because
+they belong to the \type {prefixed_cmd} operator|/|operand pair. So to come back to
+users being able to use primitives instead of funny unreadable aliases. It's good to
+keep in  mind that one can combine prefixes like the following:
 
-The traditional \TEX\ font processing is bypassed so you need to take care of that
-with the helpers. (For the moment we keep the ligaturing and kerning callbacks but
-they are kind of obsolete.)
+\starttyping
+\frozen    \foo{...}
+\immutable \foo{...}
+\instance  \foo{...}
+\mutable   \foo{...}
+\overloaded\foo{...}
+\permanent \foo{...}
+\stoptyping
 
-\stopsubsection
+so this is valid too:
 
-\startsubsection[title={\cbk {hpack_filter}}]
+\starttyping
+\global\permanent\untraced\tolerant\protected\def\foo[#1]#*[#2]{...}
+\stoptyping
 
-\topicindex{callbacks+packing}
+So what do these prefixes do? It depends on the value of an internal
+integer \type {\overloadmode} where the following values have meaning:
 
-This callback is called when \TEX\ is ready to start boxing some horizontal mode
-material. Math items and line boxes are ignored at the moment.
+\starttabulate[|c|l|c|c|c|c|c|]
+% \DB   \BC         \BC immutable \BC permanent \BC primitive \BC frozen \BC instance \NC \NR
+% \TB
+\FL
+\BC   \BC         \BC immutable \BC permanent \BC primitive \BC frozen \BC instance \NC \NR
+\ML
+\NC 1 \NC warning \NC \star     \NC \star     \NC \star     \NC        \NC          \NC \NR
+\NC 2 \NC error   \NC \star     \NC \star     \NC \star     \NC        \NC          \NC \NR
+\NC 3 \NC warning \NC \star     \NC \star     \NC \star     \NC \star  \NC          \NC \NR
+\NC 4 \NC error   \NC \star     \NC \star     \NC \star     \NC \star  \NC          \NC \NR
+\NC 5 \NC warning \NC \star     \NC \star     \NC \star     \NC \star  \NC \star    \NC \NR
+\NC 6 \NC error   \NC \star     \NC \star     \NC \star     \NC \star  \NC \star    \NC \NR
+\LL
+\stoptabulate
 
-\startfunctioncall
-function(<node> head, <string> groupcode, <number> size,
-         <string> packtype [, <number> direction] [, <node> attributelist])
-    return <node> newhead
-end
-\stopfunctioncall
+The \type {\enforced} prefix can be used to bypass this mechanism:
 
-The \type {packtype} is either \type {additional} or \type {exactly}. If \type
-{additional}, then the \type {size} is a \type {\hbox spread ...} argument. If
-\type {exactly}, then the \type {size} is a \type {\hbox to ...}. In both cases,
-the number is in scaled points.
+\starttyping
+\permanent\protected\def\foo{...}
 
-This callback does not replace any internal code.
+\protected\def\oof{\enforced\def\foo{...}}
+\stoptyping
 
+But only in so called quote {ini} mode, that is when the format file is created. In order to
+save work we also have:
+
+\starttyping
+\aliased\let\foo\relax
+\stoptyping
+
+This makes \type {\foo} a copy (or more precise, a reference) including all
+flags, so in this case it will be flagged a a primitive which is \type
+{\permanent} too. You cannot define primitives yourself but when reported in a
+trace you see it being a primitive indeed.
+
+Of course this all means that one has to define basically all relevant macros
+with a combination of prefixes and that happens to be the case in \CONTEXT, which
+in the end makes this callback a rather \CONTEXT\ specific one.
+
+\starttyping[option=LUA]
+function (
+    <t:boolean> error,
+    <t:integer> overload,
+    <t:string>  csname,
+    <t:integer> flags
+)
+    -- no return values
+end
+\stoptyping
+
 \stopsubsection
 
-\startsubsection[title={\cbk {vpack_filter}}]
+\stopsection
 
-\topicindex{callbacks+packing}
+\startsection[title=Fonts]
 
-This callback is called when \TEX\ is ready to start boxing some vertical mode
-material. Math displays are ignored at the moment.
+\startsubsection[title=define_font]
 
-This function is very similar to the \cbk {hpack_filter}. Besides the fact
-that it is called at different moments, there is an extra variable that matches
-\TEX's \prm {maxdepth} setting.
+The engine has no font loader but it does need some information about the glyphs
+that are uses like width, height and depth, possibly italic correction, kerns,
+and ligatures. And for math some more information is needed. Keep in mind that
+for instance italic correction is something specific for \TEX\ and that kerns and
+ligatures only are needed when you leave them to the engine. For modern \OPENTYPE\ fonts
+we let \LUA\ deal with this.
 
-\startfunctioncall
-function(<node> head, <string> groupcode, <number> size, <string> packtype,
-        <number> maxdepth [, <number> direction] [, <node> attributelist]))
-    return <node> newhead
+\starttyping[option=LUA]
+function (
+    <t:string>  name,
+    <t:integer> size
+)
+    return <t:integer> id
 end
-\stopfunctioncall
+\stoptyping
 
-This callback does not replace any internal code.
+The string \type {name} is the filename part of the font specification, as given
+by the user, for instance when \type {\font} is used for defining an instance.
+The number \type {size} is a bit special:
 
+\startitemize[packed]
+\startitem
+    If it is positive, it specifies an \quote{at size} in scaled points.
+\stopitem
+\startitem
+    If it is negative, its absolute value represents a \quote {scaled} setting
+    relative to the design size of the font.
+\stopitem
+\stopitemize
+
+The font can be defined with \type {font.define} which returns a font identifier
+that can be returned in the callback. Contrary to \LUATEX, in \LUAMETATEX\
+we only accept a number.
+
+The internal structure of the \type {font} table that is passed to \type
+{font.define} is explained elsewhere but there can be much more in that table.
+Likely the macro package will keep the passes table around for other usage, for
+instance for usage in the backend.
+
+Setting this callback to \type {false} is pointless because it will prevent font
+loading completely because without fonts there is little to do for the engine.
+
 \stopsubsection
 
-\startsubsection[title={\cbk {packed_vbox_filter}}]
+\startsubsection[title=quality_font]
 
-\topicindex{callbacks+packing}
+When you use font expansion you will normally pass the glyph specific expansion and
+compression values along with the dimensions. However, this can be delayed. When we
+use par passes (or otherwise set one of the adjust parameters) and a font has not
+yet bee setup for expansion this callback will kick in but only once per font.
 
-After the \cbk {vpack_filter} callback (see previous section) is triggered the
-box get packed and after that this callback can be configured to kick in.
-
-\startfunctioncall
-function(<node> head, <string> groupcode)
-    return <node> newhead
+\starttyping[option=LUA]
+function (
+    <t:integer> id
+)
+    -- no return values
 end
-\stopfunctioncall
+\stoptyping
 
-This callback does not replace any internal code.
+The function can set additional parameters in the font and pass them to \TEX\ using
+helpers from the font library.
 
 \stopsubsection
 
-\startsubsection[title={\cbk {alignment_filter}}]
+\stopsection
 
-\topicindex{callbacks+alignments}
+\startsection[title=Typesetting]
 
-This is an experimental callback that when set is called several times during the
-construction of an alignment. The context values are available in \typ
-{tex.getalignmentcontextvalues()}.
+\startsubsection[title=pre_output_filter]
 
-\startfunctioncall
-function(<node> head, <string> context, <node> attributes, <node> preamble)
-    -- no return values
+This callback is called when \TEX\ is ready to start boxing the box 255 for \prm
+{output}. The callback does not replace any internal code.
+
+\starttyping[option=LUA]
+function (
+    <t:node>    head,
+    <t:string>  groupcode,
+    <t:integer> size,
+    <t:string>  packtype,
+    <t:integer> maxdepth,
+    <t:integer> direction
+)
+    return <t:node> newhead
 end
-\stopfunctioncall
+\stoptyping
 
-There are no sanity checks so if a user messes up the passed node lists the results
-can be unpredictable and, as with other node related callbacks, crash the engine.
-
 \stopsubsection
 
-\startsubsection[title={\cbk {localbox_filter}}]
+\startsubsection[title=buildpage_filter]
 
-\topicindex{callbacks+local boxes}
+This callback is called whenever \LUAMETATEX\ is ready to move stuff to the main
+vertical list. You can use this callback to do specialized manipulation of the
+page building stage like imposition or column balancing.
 
-Local boxes are a somewhat tricky and error prone feature so use this callback
-with care because the paragraph is easily messed up. A line can have a left,
-right and middle box where the middle one has no width. The callback gets quite
-some parameters passed:
-
-\startfunctioncall
-function(<node> linebox, <node> leftbox, <node> rightbox, <node> middlebox,
-    <number> linenumber,
-    <number> leftskip, <number> rightskip, <number> lefthang, <number> righthang,
-    <number> indentation, <number> parinitleftskip, <number> parinitrightskip,
-    <number> parfillleftskip, <number> parfillrightskip,
-    <number> overshoot)
+\starttyping[option=LUA]
+function (
+    <t:string> extrainfo
+)
     -- no return values
 end
-\stopfunctioncall
+\stoptyping
 
-This is an experimental callback that will be tested in different \CONTEXT\
-mechanisms before it will be declared stable.
+The string \type {extrainfo} gives some additional information about what \TEX's
+state is with respect to the \quote {current page}. The possible values for this
+callback are:
 
+\starttabulate[|l|p|]
+% \DB value                 \BC explanation                                 \NC \NR
+% \TB
+\FL
+\BC value                 \BC explanation                                 \NC \NR
+\ML
+\NC \type{alignment}      \NC a (partial) alignment is being added        \NC \NR
+\NC \type{after_output}   \NC an output routine has just finished         \NC \NR
+\NC \type{new_graf}       \NC the beginning of a new paragraph            \NC \NR
+\NC \type{vmode_par}      \NC \type {\par} was found in vertical mode     \NC \NR
+\NC \type{hmode_par}      \NC \type {\par} was found in horizontal mode   \NC \NR
+\NC \type{insert}         \NC an insert is added                          \NC \NR
+\NC \type{penalty}        \NC a penalty (in vertical mode)                \NC \NR
+\NC \type{before_display} \NC immediately before a display starts         \NC \NR
+\NC \type{after_display}  \NC a display is finished                       \NC \NR
+\NC \type{end}            \NC \LUAMETATEX\ is terminating (it's all over) \NC \NR
+\LL
+\stoptabulate
+
+
 \stopsubsection
 
-\startsubsection[title={\cbk {process_rule}}]
+\startsubsection[title=hpack_filter]
 
-\topicindex{callbacks+rules}
+This callback is called when \TEX\ is ready to start boxing some horizontal mode
+material. Math items and line boxes are ignored at the moment. The callback does
+not replace any internal code.
 
-This is an experimental callback. It can be used with rules of subtype~4
-(user). The callback gets three arguments: the node, the width and the
-height. The callback can use \type {pdf.print} to write code to the \PDF\
-file but beware of not messing up the final result. No checking is done.
+\starttyping[option=LUA]
+function (
+    <t:node>    head,
+    <t:string>  groupcode,
+    <t:integer> size,
+    <t:string>  packtype
+    <t:integer> direction,
+    <t:node>    attributelist
+)
+    return <t:node> newhead
+end
+\stoptyping
 
+The \type {packtype} is either \type {additional} or \type {exactly}. If \type
+{additional}, then the \type {size} is a \type {\hbox spread ...} argument. If
+\type {exactly}, then the \type {size} is a \type {\hbox to ...}. In both cases,
+the number is in scaled points.
+
 \stopsubsection
 
-\startsubsection[title={\type {pre_output_filter}}]
+\startsubsection[title=vpack_filter]
 
-\topicindex{callbacks+output}
+This callback is called when \TEX\ is ready to start boxing some vertical mode
+material. Math displays are ignored at the moment. The callback does not replace
+any internal code.
 
-This callback is called when \TEX\ is ready to start boxing the box 255 for \prm
-{output}.
+This function is very similar to \type {hpack_filter}. Besides the fact
+that it is called at different moments, there is an extra variable that matches
+\TEX's \type {\maxdepth} setting.
 
-\startfunctioncall
-function(<node> head, <string> groupcode, <number> size, <string> packtype,
-        <number> maxdepth [, <number> direction])
-    return <node> newhead
+\starttyping[option=LUA]
+function (
+    <t:node>    head,
+    <t:string>  groupcode,
+    <t:integer> size,
+    <t:string>  packtype,
+    <t:integer> maxdepth,
+    <t:integer> direction,
+    <t:node>    attributelist
+)
+    return <t:node> newhead
 end
-\stopfunctioncall
+\stoptyping
 
-This callback does not replace any internal code.
-
 \stopsubsection
 
-\startsubsection[title={\cbk {hyphenate}}]
+\startsubsection[title=hyphenate]
 
-\topicindex{callbacks+hyphenation}
-
 This callback is supposed to insert discretionary nodes in the node list it
 receives.
 
-\startfunctioncall
-function(<node> head, <node> tail)
+\starttyping[option=LUA]
+function (
+    <t:node> head,
+    <t:node> tail
+)
     -- no return values
 end
-\stopfunctioncall
+\stoptyping
 
 Setting this callback to \type {false} will prevent the internal discretionary
 insertion pass.
@@ -559,18 +717,19 @@
 
 \stopsubsection
 
-\startsubsection[title={\cbk {ligaturing}}]
+\startsubsection[title=ligaturing]
 
-\topicindex{callbacks+ligature building}
-
 This callback, which expects no return values, has to apply ligaturing to the
 node list it receives.
 
-\startfunctioncall
-function(<node> head, <node> tail)
+\starttyping[option=LUA]
+function (
+    <t:node> head,
+    <t:node> tail
+)
     -- no return values
 end
-\stopfunctioncall
+\stoptyping
 
 You don't have to worry about return values because the \type {head} node that is
 passed on to the callback is guaranteed not to be a glyph_node (if need be, a
@@ -590,18 +749,19 @@
 
 \stopsubsection
 
-\startsubsection[title={\cbk {kerning}}]
+\startsubsection[title=kerning]
 
-\topicindex{callbacks+kerning}
-
 This callback has to apply kerning between the nodes in the node list it
-receives. See \cbk {ligaturing} for calling conventions.
+receives. See \type {ligaturing} for calling conventions.
 
-\startfunctioncall
-function(<node> head, <node> tail)
+\starttyping[option=LUA]
+function (
+    <t:node> head,
+    <t:node> tail
+)
     -- no return values
 end
-\stopfunctioncall
+\stoptyping
 
 Setting this callback to \type {false} will prevent the internal kern insertion
 pass. You must not ruin the node list. For instance, the head normally is a local
@@ -610,486 +770,1040 @@
 
 \stopsubsection
 
-\startsubsection[title={\cbk {append_line_filter}}]
+\startsubsection[title=glyph_run]
 
-\topicindex{callbacks+lines}
+When set this callback is triggered when \TEX\ normally handles the ligaturing
+and kerning. In \LUATEX\ you use the \typ {hpack_filter} and \typ
+{per_linebreak_filter} callbacks for that (where each passes different
+arguments). This callback doesn't get triggered when there are no glyphs (in
+\LUATEX\ this optimization is controlled by a a variable).
 
-Every time a line is added this callback is triggered, when set. migrated
-material and adjusts also qualify as such and the detail relates to the adjust
-index.
-
-\startfunctioncall
-function(<node> head, <node> tail, <string> context, <number> detail)
-    return <node> newhead
+\starttyping[option=LUA]
+function (
+    <t:node>    head,
+    <t:string>  groupcode,
+    <t:integer> direction
+)
+    return <t:node> newhead
 end
-\stopfunctioncall
+\stoptyping
 
-A list of possible context values can be queried with \typ
-{tex.getappendlinecontextvalues()}.
+The traditional \TEX\ font processing is bypassed so you need to take care of that
+with the helpers. (For the moment we keep the ligaturing and kerning callbacks but
+they are kind of obsolete.)
 
 \stopsubsection
 
-\stopsection
+\startsubsection[title=pre_linebreak_filter]
 
-\startsection[title={Paragraph callbacks}]
+This callback is called just before \LUATEX\ starts converting a list of nodes
+into a stack of \type {\hbox}es, after the addition of \type {\parfillskip}. The
+callback does not replace any internal code.
 
-\startsubsection[title={\type {insert_par}}]
+\starttyping[option=LUA]
+function (
+    <t:node>   head,
+    <t:string> groupcode
+)
+    return <t:node> newhead
+end
+\stoptyping
 
-\topicindex{callbacks+paragraphs}
+The string called \type {groupcode} identifies the nodelist's context within
+\TEX's processing. The range of possibilities is given in the table below, but
+not all of those can actually appear here, some are for the \type {hpack_filter}
+and \type {vpack_filter} callbacks.
 
-Each paragraph starts with a local par node that keeps track of for instance
-the direction. You can hook a callback into the creator:
+\starttabulate[|l|p|]
+% \DB value                \BC explanation                                     \NC \NR
+% \TB
+\FL
+\BC value                \BC explanation                                     \NC \NR
+\ML
+\NC \type{<empty>}       \NC main vertical list                              \NC \NR
+\NC \type{hbox}          \NC \type {\hbox} in horizontal mode                \NC \NR
+\NC \type{adjusted_hbox} \NC \type {\hbox} in vertical mode                  \NC \NR
+\NC \type{vbox}          \NC \type {\vbox}                                   \NC \NR
+\NC \type{vtop}          \NC \type {\vtop}                                   \NC \NR
+\NC \type{align}         \NC \type {\halign} or \type {\valign}              \NC \NR
+\NC \type{disc}          \NC discretionaries                                 \NC \NR
+\NC \type{insert}        \NC packaging an insert                             \NC \NR
+\NC \type{vcenter}       \NC \type {\vcenter}                                \NC \NR
+\NC \type{local_box}     \NC \type {\localleftbox} or \type {\localrightbox} \NC \NR
+\NC \type{split_off}     \NC top of a \type {\vsplit}                        \NC \NR
+\NC \type{split_keep}    \NC remainder of a \type {\vsplit}                  \NC \NR
+\NC \type{align_set}     \NC alignment cell                                  \NC \NR
+\NC \type{fin_row}       \NC alignment row                                   \NC \NR
+\LL
+\stoptabulate
 
-\startfunctioncall
-function(<node> par, <string> location)
-    -- no return values
-end
-\stopfunctioncall
+As for all the callbacks that deal with nodes, the return value can be one of
+three things:
 
-There is no return value and you should make sure that the node stays valid
-as otherwise \TEX\ can get confused.
+\startitemize
+\startitem
+    boolean \type {true} signals successful processing
+\stopitem
+\startitem
+    \type {<t:node>} signals that the \quote {head} node should be replaced by the
+    returned node
+\stopitem
+\startitem
+    boolean \type {false} signals that the \quote {head} node list should be
+    ignored and flushed from memory
+\stopitem
+\stopitemize
 
 \stopsubsection
 
-\startsubsection[title={\cbk {begin_paragraph}}]
+\startsubsection[title=linebreak_filter]
 
-\topicindex{callbacks+paragraphs}
+This callback replaces \LUATEX's line breaking algorithm. The callback does not
+replace any internal code.
 
-{\em todo}
+\starttyping[option=LUA]
+function (
+    <t:node>    head,
+    <t:boolean> is_display
+)
+    return <t:node> newhead
+end
+\stoptyping
 
+The returned node is the head of the list that will be added to the main vertical
+list, the boolean argument is true if this paragraph is interrupted by a
+following math display.
+
+If you return something that is not a \type {<t:node>}, \LUATEX\ will apply the
+internal linebreak algorithm on the list that starts at \type {<head>}.
+Otherwise, the \type {<t:node>} you return is supposed to be the head of a list of
+nodes that are all allowed in vertical mode, and at least one of those has to
+represent an \type {\hbox}. Failure to do so will result in a fatal error.
+
+Setting this callback to \type {false} is possible, but dangerous, because it is
+possible you will end up in an unfixable \quote {deadcycles loop}.
+
 \stopsubsection
 
-\startsubsection[title={\cbk {paragraph_context}}]
+\startsubsection[title=post_linebreak_filter]
 
-\topicindex{callbacks+paragraphs}
+This callback is called just after \LUATEX\ has converted a list of nodes into a
+stack of \type {\hbox}es.
 
-{\em todo}
+\starttyping[option=LUA]
+function (
+    <t:node>   head,
+    <t:string> groupcode
+)
+    return <t:node> newhead
+end
+\stoptyping
 
 \stopsubsection
 
-\startsection[title={Math related callbacks}]
+\startsubsection[title=append_to_vlist_filter]
 
-\startsubsection[title={\cbk {mlist_to_hlist}}]
+This callback is called whenever \LUATEX\ adds a box to a vertical list (the
+\type {mirrored} argument is obsolete):
 
-\topicindex{callbacks+math}
+\starttyping[option=LUA]
+function (
+    <t:node>    box,
+    <t:string>  locationcode,
+    <t:integer> prevdepth
+)
+    return <t:node> list [, <t:integer> prevdepth [, <t:boolean> checkdepth ] ]
+end
+\stoptyping
 
-This callback replaces \LUATEX's math list to node list conversion algorithm.
+It is ok to return nothing or \type {nil} in which case you also need to flush
+the box or deal with it yourself. The prevdepth is also optional. Locations are
+\type {box}, \type {alignment}, \type {equation}, \type {equation_number} and
+\type {post_linebreak}. When the third argument returned is \type {true} the
+normal prevdepth correction will be applied, based on the first node.
 
-\startfunctioncall
-function(<node> head, <string> display_type, <boolean> need_penalties)
-    return <node> newhead
+\stopsubsection
+
+\startsubsection[title=alignment_filter]
+
+This is an experimental callback that when set is called several times during the
+construction of an alignment. The context values are available in \typ
+{tex.getalignmentcontextvalues()}.
+
+\starttyping[option=LUA]
+function (
+    <t:node>   head,
+    <t:string> context,
+    <t:node>   attributes,
+    <t:node>   preamble
+)
+    -- no return values
 end
-\stopfunctioncall
+\stoptyping
 
-The returned node is the head of the list that will be added to the vertical or
-horizontal list, the string argument is either \quote {text} or \quote {display}
-depending on the current math mode, the boolean argument is \type {true} if
-penalties have to be inserted in this list, \type {false} otherwise.
+There are no sanity checks so if a user messes up the passed node lists the results
+can be unpredictable and, as with other node related callbacks, crash the engine.
 
-Setting this callback to \type {false} is bad, it will almost certainly result in
-an endless loop.
-
 \stopsubsection
 
-\startsubsection[title={\cbk {math_rule}}]
+\startsubsection[title=local_box_filter]
 
-\topicindex{callbacks+math}
-\topicindex{callbacks+ruled}
+Local boxes are a somewhat tricky and error prone feature so use this callback
+with care because the paragraph is easily messed up. A line can have a left,
+right and middle box where the middle one has no width. This callback does not
+replace any internal code. The callback gets quite some parameters passed:
 
-{\em todo}
+\starttyping[option=LUA]
+function (
+    <t:node>    linebox,
+    <t:node>    leftbox,
+    <t:node>    rightbox,
+    <t:node>    middlebox,
+    <t:integer> linenumber,
+    <t:integer> leftskip,
+    <t:integer> rightskip,
+    <t:integer> lefthang,
+    <t:integer> righthang,
+    <t:integer> indentation,
+    <t:integer> parinitleftskip,
+    <t:integer> parinitrightskip,
+    <t:integer> parfillleftskip,
+    <t:integer> parfillrightskip,
+    <t:integer> overshoot
+)
+    -- no return values
+end
+\stoptyping
 
+This is an experimental callback that will be tested in different \CONTEXT\
+mechanisms before it will be declared stable.
+
 \stopsubsection
 
-\startsubsection[title={\cbk {make_extensible}}]
+\startsubsection[title=packed_vbox_filter]
 
-\topicindex{callbacks+math}
-\topicindex{callbacks+fonts}
+After the \type {vpack_filter} callback (see previous section) is triggered the
+box get packed and after that this callback can be configured to kick in.
 
-{\em todo}
+\starttyping[option=LUA]
+function (
+    <t:node>   head,
+    <t:string> groupcode
+)
+    return <t:node> newhead
+end
+\stoptyping
 
 \stopsubsection
 
-\startsubsection[title={\cbk {register_extensible}}]
+\startsubsection[title=handle_uleader]
 
-\topicindex{callbacks+math}
-\topicindex{callbacks+fonts}
+The \typ {\uleaders} command inserts a user leader into the list. When a list get packed
+and has such leaders, a run over the list happens after packing so that it can be
+finalized.
 
-{\em todo}
+\starttyping[option=LUA]
+function (
+    <t:node>    head,
+    <t:string>  context,
+    <t:integer> index,
+    <t:node>    box,
+    <t:integer> location
+)
+    return <t:node> head
+end
+\stoptyping
 
 \stopsubsection
 
-\stopsection
+\startsubsection[title=italic_correction]
 
-\startsection[title={Information reporting callbacks}][library=callback]
+The concept of italic correction is very much related to traditional \TEX\ fonts.
+At least in 2024 it is absent from \OPENTYPE\ although it has some meaning in
+\OPENTYPE\ math. In \TEX\ this correction is normally inserted by \type {\/}
+although in \LUAMETATEX\ we also have \typ {\explicititaliccorrection} as well as
+\typ {\forcedleftcorrection} and \typ {\forcedrightcorrection}.
 
-\startsubsection[title={\cbk {pre_dump}}]
+When this callback is enabled it gets triggered when one of left or right
+correction commands is given and the returned kern is then used as correction.
 
-\topicindex{callbacks+dump}
+\starttyping[option=LUA]
+function (
+    <t:node>    glyph,
+    <t:integer> kern,
+    <t:integer> subtype,
+)
+    return <t:integer> kern
+end
+\stoptyping
 
-\startfunctioncall
-function()
+\stopsubsection
+
+\startsubsection[title=insert_par]
+
+Each paragraph starts with a local par node that keeps track of for instance
+the direction. You can hook a callback into the creator:
+
+\starttyping[option=LUA]
+function (
+    <t:node>   par,
+    <t:string> location
+)
     -- no return values
 end
-\stopfunctioncall
+\stoptyping
 
-This function is called just before dumping to a format file starts. It does not
-replace any code and there are neither arguments nor return values.
+There is no return value and you should make sure that the node stays valid
+as otherwise \TEX\ can get confused.
 
 \stopsubsection
 
-\startsubsection[title={\cbk {start_run}}]
+\startsubsection[title=append_line_filter]
 
-\topicindex{callbacks+job run}
+Every time a line is added this callback is triggered, when set. migrated
+material and adjusts also qualify as such and the detail relates to the adjust
+index.
 
-\startfunctioncall
-function()
-    -- no return values
+\starttyping[option=LUA]
+function (
+    <t:node>    head,
+    <t:node>    tail,
+    <t:string>  context,
+    <t:integer> detail
+)
+    return <t:node> newhead
 end
-\stopfunctioncall
+\stoptyping
 
-This callback replaces the code that prints \LUATEX's banner. Note that for
-successful use, this callback has to be set in the \LUA\ initialization script,
-otherwise it will be seen only after the run has already started.
+A list of possible context values can be queried with \typ
+{tex.getappendlinecontextvalues()}.
 
 \stopsubsection
 
-\startsubsection[title={\cbk {stop_run}}]
+\startsubsection[title=insert_distance]
 
-\topicindex{callbacks+job run}
+This callback is called when the page builder adds an insert. There is not much
+control over this mechanism but this callback permits some last minute
+manipulations of the spacing before an insert, something that might be handy when
+for instance multiple inserts (types) are appended in a row.
 
-\startfunctioncall
-function()
+\starttyping[option=LUA]
+function (
+    <t:integer> class,
+    <t:integer> order
+)
+    return <t:integer> register
 end
-\stopfunctioncall
+\stoptyping
 
-This callback replaces the code that prints \LUATEX's statistics and \quote
-{output written to} messages. The engine can still do housekeeping and therefore
-you should not rely on this hook for postprocessing the \PDF\ or log file.
+The return value is a number indicating the skip register to use for the
+prepended spacing. This permits for instance a different top space (when \type
+{class} equals one) and intermediate space (when \type {class} is larger than
+one). Of course you can mess with the insert box but you need to make sure that
+\LUATEX\ is happy afterwards.
 
 \stopsubsection
 
-\startsubsection[title={\cbk {intercept_tex_error}, \cbk {intercept_lua_error}}]
+\startsubsection[title=begin_paragraph]
 
-\topicindex{callbacks+errors}
+Every time a paragraph starts this callback, when configured, will kick in:
 
-\startfunctioncall
-function()
-    -- no return values
+\starttyping[option=LUA]
+function (
+    <t:boolean> invmode,
+    <t:boolean> indented,
+    <t:string>  context
+)
+    return <t:boolean> indented
 end
-\stopfunctioncall
+\stoptyping
 
-This callback is run from inside the \TEX\ error function, and the idea is to
-allow you to do some extra reporting on top of what \TEX\ already does (none of
-the normal actions are removed). You may find some of the values in the \type
-{status} table useful. The \TEX\ related callback gets two arguments: the current
-processing mode and a boolean indicating if there was a runaway.
+There are many places where a new paragraph can be triggered:
 
+\startfourrows
+\getbuffer[engine:syntax:parcontextcodes]
+\stopfourrows
+
 \stopsubsection
 
-\startsubsection[title={\cbk {show_error_message} and \cbk {show_warning_message}}]
+\startsubsection[title=paragraph_context]
 
-\topicindex{callbacks+errors}
-\topicindex{callbacks+warnings}
+When the return value of this callback is \typ {false} the paragraph related
+settings, when they have been updated, will not be updated.
 
-\startfunctioncall
-function()
-    -- no return values
+\starttyping[option=LUA]
+function (
+    <t:string> context
+)
+    return <t:boolean> ignore
 end
-\stopfunctioncall
+\stoptyping
 
-These callback replaces the code that prints the error message. The usual
-interaction after the message is not affected.
-
 \stopsubsection
 
-\startsubsection[title={\cbk {start_file}}]
+\startsubsection[title=missing_character]
 
-\topicindex{callbacks+files}
+This callback is triggered when a character node is created and the font doesn't
+have the requested character.
 
-\startfunctioncall
-function(category,filename)
-    -- no return values
+\starttyping[option=LUA]
+function (
+    <t:integer> location,
+    <t:node>    glyph,
+    <t:integer> font,
+    <t:integer> character
+)
+    -- no return value
 end
-\stopfunctioncall
+\stoptyping
 
-This callback replaces the code that \LUATEX\ prints when a file is opened like
-\type {(filename} for regular files. The category is a number:
+When \prm {tracinglostchars} is set to a positive value a message goes to the log
+and a value larger than one also makes it show up non the terminal. In the
+callback, the location is one of:
 
-\starttabulate[|c|l|]
-\DB value  \BC meaning \NC \NR
-\TB
-\NC 1 \NC a normal data file, like a \TEX\ source \NC \NR
-\NC 2 \NC a font map coupling font names to resources \NC \NR
-\NC 3 \NC an image file (\type {png}, \type {pdf}, etc) \NC \NR
-\NC 4 \NC an embedded font subset \NC \NR
-\NC 5 \NC a fully embedded font \NC \NR
-\LL
-\stoptabulate
+\startfourrows
+\getbuffer[engine:syntax:missingcharactervalues]
+\stopfourrows
 
 \stopsubsection
 
-\startsubsection[title={\cbk {stop_file}}]
+\startsubsection[title=process_character]
 
-\topicindex{callbacks+files}
+This callback is experimental and gets called when a glyph node is created and
+the callback field in a character is set.
 
-\startfunctioncall
-function(category)
-    -- no return values
+\starttyping[option=LUA]
+function (
+    <t:integer> font,
+    <t:integer> character
+)
+    -- no return value
 end
-\stopfunctioncall
+\stoptyping
 
-This callback replaces the code that \LUATEX\ prints when a file is closed like
-the \type {)} for regular files.
-
 \stopsubsection
 
-\startsubsection[title={\cbk {wrapup_run}}]
+\startsubsection[title=tail_append]
 
-\topicindex{callbacks+wrapping up}
+%         This callback is called when \LUATEX\ adds contents to list:
 
-This callback is called after the \PDF\ and log files are closed. Use it at your own
-risk.
+%         \starttyping[option=LUA]
+%         function (
+%             <t:string> extrainfo
+%         )
+%         end
+%         \stoptyping
 
+%         The string reports the group code. From this you can deduce from
+%         what list you can give a treat.
+
+%         \starttabulate[|l|p|]
+%         \DB value             \BC explanation                                  \NC \NR
+%         \TB
+%         \NC \type{pre_box}    \NC interline material is being added            \NC \NR
+%         \NC \type{pre_adjust} \NC \type {\vadjust} material is being added     \NC \NR
+%         \NC \type{box}        \NC a typeset box is being added (always called) \NC \NR
+%         \NC \type{adjust}     \NC \type {\vadjust} material is being added     \NC \NR
+%         \LL
+%         \stoptabulate
+
 \stopsubsection
 
 \stopsection
 
-\startsection[title={Font-related callbacks}][library=callback]
+\startsection[title=Tracing]
 
-\startsubsection[title={\cbk {define_font}}]
+\startsubsection[title=hpack_quality]
 
-\topicindex{callbacks+fonts}
+This callback can be used to intercept the overfull messages that can result from
+packing a horizontal list (as happens in the par builder). The function takes a
+few arguments:
 
-\startfunctioncall
-function(<string> name, <number> size)
-    return <number> id
+\starttyping[option=LUA]
+function (
+    <t:string>  incident,
+    <t:integer> detail,
+    <t:node>    head,
+    <t:integer> first,
+    <t:integer> last
+ )
+    return <t:node> whatever
 end
-\stopfunctioncall
+\stoptyping
 
-The string \type {name} is the filename part of the font specification, as given
-by the user.
+The incident is one of \type {overfull}, \type {underfull}, \type {loose} or
+\type {tight}. The detail is either the amount of overflow in case of \type
+{overfull}, or the badness otherwise. The head is the list that is constructed
+(when protrusion or expansion is enabled, this is an intermediate list).
+Optionally you can return a node, for instance an overfull rule indicator. That
+node will be appended to the list (just like \TEX's own rule would).
 
-The number \type {size} is a bit special:
+\stopsubsection
 
-\startitemize[packed]
-\startitem
-    If it is positive, it specifies an \quote{at size} in scaled points.
-\stopitem
-\startitem
-    If it is negative, its absolute value represents a \quote {scaled} setting
-    relative to the design size of the font.
-\stopitem
-\stopitemize
+\startsubsection[title=vpack_quality]
 
-The font can be defined with \type {font.define} which returns a font identifier
-that can be returned in the callback. So, contrary to \LUATEX, in \LUAMETATEX\
-we only accept a number.
+This callback can be used to intercept the overfull messages that can result from
+packing a vertical list (as happens in the page builder). The function takes a
+few arguments:
 
-The internal structure of the \type {font} table that is passed to \type
-{font.define} is explained in \in {chapter} [fonts]. That table is saved
-internally, so you can put extra fields in the table for your later \LUA\ code to
-use. In alternative, \type {retval} can be a previously defined fontid. This is
-useful if a previous definition can be reused instead of creating a whole new
-font structure.
+\starttyping[option=LUA]
+function (
+    <t:string>  incident,
+    <t:integer> detail,
+    <t:node>    head,
+    <t:integer> first,
+    <t:integer> last
+)
+    -- no return values
+end
+\stoptyping
 
-Setting this callback to \type {false} is pointless as it will prevent font
-loading completely but will nevertheless generate errors.
+The incident is one of \type {overfull}, \type {underfull}, \type {loose} or
+\type {tight}. The detail is either the amount of overflow in case of \type
+{overfull}, or the badness otherwise. The head is the list that is constructed.
 
 \stopsubsection
 
-\startsubsection[title={\cbk {missing_character} and \cbk {process_character}}]
+\startsubsection[title=line_break]
 
-\topicindex{callbacks+fonts}
-\topicindex{callbacks+characters}
+This callback is actually a set of callbacks that has to be deals with as a
+whole. The main reason why we have this callback is that we wanted to be able to
+see what the par builder is doing, especially when we implement multiple
+paragraph building passes. This makes the callback pretty much a rather \CONTEXT\
+specific one.
 
-This callback is triggered when a character node is created and the font doesn't
-have the requested character.
+{\em We can also consider fetching the passive and active lists because we now keep
+much more info around.}
 
-\startfunctioncall
-function(<node> glyph, <number> font, <number> character)
-    -- no return value
+\starttyping[option=LUA]
+function(
+    <t:integer> context,
+    <t:integer> checks,
+    ...
+)
+    -- no return values
 end
-\stopfunctioncall
+\stoptyping
 
-The \type {process_character} callback is experimental and gets called when a
-glyph node is created and the callback field in a character is set.
+\starttyping[option=LUA]
+function initialize (
+    <t:integer> context,
+    <t:integer> checks,
+    <t:integer> subpasses
+)
+    -- no return values
+end
+\stoptyping
 
-\startfunctioncall
-function(<number> font, <number> character)
-    -- no return value
+\starttyping[option=LUA]
+function start (
+    <t:integer> context,
+    <t:integer> checks,
+    <t:integer> pass,
+    <t:integer> subpass,
+    <t:integer> classes,
+    <t:integer> decent
+)
+    -- no return values
 end
-\stopfunctioncall
+\stoptyping
 
+\starttyping[option=LUA]
+function stop (
+    <t:integer> context,
+    <t:integer> checks,
+    <t:integer> demerits
+)
+    -- no return values
+end
+\stoptyping
+
+\starttyping[option=LUA]
+function collect (
+    <t:integer> context,
+    <t:integer> checks
+)
+    -- no return values
+end
+\stoptyping
+
+\starttyping[option=LUA]
+function line (
+    <t:integer> context,
+    <t:integer> checks,
+    <t:integer> box,
+    <t:integer> badness,
+    <t:integer> overshoot,
+    <t:integer> shrink,
+    <t:integer> stretch,
+    <t:integer> line,
+    <t:integer> serial
+)
+    -- no return values
+end
+\stoptyping
+
+\starttyping[option=LUA]
+function delete (
+    <t:integer> context,
+    <t:integer> checks,
+    <t:integer> serial
+)
+    -- no return values
+end
+\stoptyping
+
+\starttyping[option=LUA]
+function wrapup (
+    <t:integer> context,
+    <t:integer> checks,
+    <t:integer> demerits,
+    <t:integer> looseness
+)
+    -- no return values
+end
+\stoptyping
+\starttyping[option=LUA]
+function check (
+    <t:integer> context,
+    <t:integer> checks,
+    <t:integer> pass,
+    <t:integer> subpass,
+    <t:integer> serial,
+    <t:integer> prevserial,
+    <t:integer> linenumber,
+    <t:integer> nodetype,
+    <t:integer> fitness,,
+    <t:integer> demerits,
+    <t:integer> classes,
+    <t:integer> badness,
+    <t:integer> demerits,
+    <t:node>    breakpoint,
+    <t:integer> short,
+    <t:integer> glue,
+    <t:integer> linewidth
+)
+    return <t:integer> demerits  -- optional
+end
+\stoptyping
+
+\starttyping[option=LUA]
+function list (
+    <t:integer> context,
+    <t:integer> checks,
+    <t:integer> serial
+)
+    -- no return values
+end
+\stoptyping
+
+Every one of these gets a \type {context} and \type {checks} passes. Possible
+contexts are:
+
+\startfourrows
+\getbuffer[engine:syntax:linebreakcontextcodes]
+\stopfourrows
+
+The \type {checks} parameters is the value of \type {\linebreakchecks} which
+makes it possible to plug in actions depending on that number. To give an idea if
+what gets called, this is what you get when typesetting \type {tufte.tex}:
+initialize, start, report, delete, delete, stop, start, report, report, delete,
+report, report, report, delete, delete, report, report, report, delete, report,
+delete, delete, report, report, report, delete, report, delete, delete, report,
+report, delete, report, report, delete, delete, delete, report, delete, report,
+delete, delete, report, report, report, delete, delete, report, delete, report,
+report, delete, report, delete, delete, delete, report, report, delete, report,
+report, delete, report, delete, report, delete, report, delete, delete, report,
+report, report, report, delete, delete, delete, delete, delete, delete, delete,
+delete, delete, report, stop, collect, list, list, list, list, list, list, list,
+list, list, line, line, line, line, line, line, line, line, line, wrapup.
+
 \stopsubsection
 
-\stopsection
+\startsubsection[title=show_build]
 
-\startsection[title=Reporting]
+You can trace (and even influence) the page builder with this callback. It comes in
+several variants that are called during the process. Callbacks like these assume that
+one knows what is going on in the engine.
 
-\startsubsection[title={\cbk {show_whatsit}}]
+\starttyping[option=LUA]
+function initialize (
+    <t:integer> context
+)
+    -- no return values
+end
+\stoptyping
 
-\topicindex{callbacks+whatsits}
+\starttyping[option=LUA]
+function step (
+    <t:integer> context,
+    <t:node>    current,
+    <t:integer> pagegoal,
+    <t:integer> pagetotal
+)
+    -- no return values
+end
+\stoptyping
 
+\starttyping[option=LUA]
+function check (
+    <t:integer> context,
+    <t:node>    current,
+    <t:boolean> moveon,
+    <t:boolean> fireup,
+    <t:integer> badness,
+    <t:integer> costs,
+    <t:integer> penalty
+)
+    return <t:boolean> moveon, <t:boolean> fireup
+end
+\stoptyping
+
+\starttyping[option=LUA]
+function skip (
+    <t:integer> context,
+    <t:node>    current,
+)
+    -- no return values
+end
+\stoptyping
+
+\starttyping[option=LUA]
+function move (
+    <t:integer> context,
+        <t:node>    current,
+        <t:integer> lastheight,
+        <t:integer> lastdepth,
+        <t:integer> laststretch,
+        <t:integer> lastshrink,
+        <t:boolean> hasstretch
+)
+    -- no return values
+end
+\stoptyping
+
+\starttyping[option=LUA]
+function fireup (
+    <t:integer> context,
+    <t:node> current
+)
+    -- no return values
+end
+\stoptyping
+
+\starttyping[option=LUA]
+function wrapup (
+    <t:integer> context
+)
+    -- no return values
+end
+\stoptyping
+
+\stopsubsection
+
+\startsubsection[title=show_whatsit]
+
 Because we only have a generic whatsit it is up to the macro package to provide
 details when tracing them.
 
-\startfunctioncall
-function(<node> whatsit, <number> indentation,
-    <number> tracinglevel, <number> currentlevel, <number> inputlevel)
+\starttyping[option=LUA]
+function (
+    <t:node>    whatsit,
+    <t:integer> indentation,
+    <t:integer> tracinglevel,
+    <t:integer> currentlevel,
+    <t:integer> inputlevel
+)
     -- no return value
 end
-\stopfunctioncall
+\stoptyping
 
-The indentation tells how many periods are to be typeset if you want to be
-compatible with the rest of tracing. The tracinglevels indicates if the current
-level and\|/or input level are shown cf. \prm {tracinglevels}. Of course one
-is free to show whatever in whatever way suits the whatsit best.
+Here \type {indentation} tells how many periods are to be typeset if you want to
+be compatible with the rest of tracing. The \type {tracinglevel} indicates if the
+current level and|/|or input level are shown cf. \type {\tracinglevels}. Of
+course one is free to show whatever in whatever way suits the whatsit best.
 
 \stopsubsection
 
-\startsubsection[title={\cbk {get_attribute}}]
+\startsubsection[title=linebreak_quality]
 
-\topicindex{callbacks+attributes}
+\starttyping[option=LUA]
+function (
+    <t:node>    par,
+    <t:integer> id,
+    <t:integer> pass,
+    <t:integer> subpass,
+    <t:integer> subpasses,
+    <t:integer> state,
+    <t:integer> overfull,
+    <t:integer> underfull,
+    <t:integer> verdict,
+    <t:integer> classified,
+    <t:integer> line
+)
+    return <t:node> result
+end
+\stoptyping
 
+\stopsubsection
+
+\startsubsection[title=show_loners]
+
+In spite of widow, club, broken and shaping penalties we can have single lines in the
+result. When set, this callback replaces the output that normally \typ {\tracingloners}
+produces.
+
+\starttyping[option=LUA]
+function (
+    <t:integer> options,
+    <t:integer> penalty
+)
+    return <t:node> result
+end
+\stoptyping
+
+The options are those set on the encountered penalty:
+
+\startthreerows
+\getbuffer[engine:syntax:penaltyoptioncodes]
+\stopthreerows
+
+\stopsubsection
+
+\startsubsection[title=get_attribute]
+
 Because attributes are abstract pairs of indices and values the reported
 properties makes not much sense and are very macro package (and user) dependent.
 This callback permits more verbose reporting by the engine when tracing is
 enabled.
 
-\startfunctioncall
-function(<number> index, <number> value)
-    return <string>, <string>
+\starttyping[option=LUA]
+function (
+    <t:integer> index,
+    <t:integer> value
+)
+    return <t:string>, <t:string>
 end
-\stopfunctioncall
+\stoptyping
 
 \stopsubsection
 
-\startsubsection[title={\cbk {get_noad_class}}]
+\startsubsection[title=get_noad_class]
 
-\topicindex{callbacks+classes}
-
 We have built|-|in math classes but there can also be user defined ones. This
 callback can be used to report more meaningful strings instead of numbers when
 tracing.
 
-\startfunctioncall
-function(<number> class)
-    return <string>
+\starttyping[option=LUA]
+function (
+    <t:integer> class
+)
+    return <t:string>
 end
-\stopfunctioncall
+\stoptyping
 
 \stopsubsection
 
-\startsubsection[title={\cbk {trace_memory}}]
+\startsubsection[title=get_math_dictionary]
+    todo
+\stopsubsection
 
+\startsubsection[title=show_lua_call]
+
+When the engine traces something that involves a \LUA\ call it makes sense to report something
+more meaningful than just that. This callback can be used provide a meaningful string (like the
+name of a function).
+
+\starttyping[option=LUA]
+function (
+    <t:string>  name,
+    <t:integer> index
+)
+    return <t:string>
+end
+\stoptyping
+
+\stopsubsection
+
+\startsubsection[title=trace_memory]
+
 When the engine starts all kind of memory is pre|-|allocated> depending on the
 configuration more gets allocated when a category runs out of memory. The
 \LUAMETATEX\ engine is more dynamic than \LUATEX. If this callback is set it will
 get called as follows:
 
-\startfunctioncall
-function(<string> category, <boolean> success)
+\starttyping[option=LUA]
+function (
+    <t:string>  category,
+    <t:boolean> success
+)
     -- no return value
 end
-\stopfunctioncall
+\stoptyping
 
 The boolean indicates if the allocation has been successful. One can best quit
-the run when this one is \type {false}, if the engine doesn't already do that.
+the run when this one is \type {false} which the engine is likely to do that
+anyway, be in in a less graceful way that you might like.
 
 \stopsubsection
 
-\startsubsection[title={\type {hpack_quality}}]
+\startsubsection[title=paragraph_pass]
 
-\topicindex{callbacks+packing}
+{\em This callback is not yet stable.}
 
-This callback can be used to intercept the overfull messages that can result from
-packing a horizontal list (as happens in the par builder). The function takes a
-few arguments:
+\stopsubsection
 
-\startfunctioncall
-function(<string> incident, <number> detail, <node> head, <number> first,
-         <number> last)
-    return <node> whatever
+\stopsection
+
+\startsection[title=Math]
+
+\startsubsection[title=mlist_to_hlist]
+
+This callback replaces \LUATEX's math list to node list conversion algorithm.
+
+\starttyping[option=LUA]
+function (
+    <t:node>    head,
+    <t:string>  display_type,
+    <t:boolean> need_penalties
+)
+    return <t:node> newhead
 end
-\stopfunctioncall
+\stoptyping
 
-The incident is one of \type {overfull}, \type {underfull}, \type {loose} or
-\type {tight}. The detail is either the amount of overflow in case of \type
-{overfull}, or the badness otherwise. The head is the list that is constructed
-(when protrusion or expansion is enabled, this is an intermediate list).
-Optionally you can return a node, for instance an overfull rule indicator. That
-node will be appended to the list (just like \TEX's own rule would).
+The returned node is the head of the list that will be added to the vertical or
+horizontal list, the string argument is either \quote {text} or \quote {display}
+depending on the current math mode, the boolean argument is \type {true} if
+penalties have to be inserted in this list, \type {false} otherwise.
 
+Setting this callback to \type {false} is bad, it will almost certainly result in
+an endless loop.
+
 \stopsubsection
 
-\startsubsection[title={\type {vpack_quality}}]
+\startsubsection[title=math_rule]
 
-\topicindex{callbacks+packing}
+In math rules are used for fractions, radicals and accents. In the case of
+radicals rules mix with glyphs to build the symbol. In \CONTEXT\ we can enable an
+alternate approach that uses glyphs instead of rules so that we can have more
+consistent shapes, for instance with slopes or non square endings. This callback
+takes care of that.
 
-This callback can be used to intercept the overfull messages that can result from
-packing a vertical list (as happens in the page builder). The function takes a
-few arguments:
+\starttyping[option=LUA]
+function (
+    <t:integer> subtype,
+    <t:integer> font,
+    <t:integer> width,
+    <t:integer> height,
+    <t:node>    attributes
+)
+    return <t:node> rule
+end
+\stoptyping
 
-\startfunctioncall
-function(<string> incident, <number> detail, <node> head, <number> first,
-    <number> last)
+\stopsubsection
+
+\startsubsection[title=make_extensible]
+
+Like \typ {math_rule} this callback is used to construct nicer extensibles in \CONTEXT\
+math support. It can optionally be followed by \typ {register_extensible}.
+
+\starttyping[option=LUA]
+function (
+    <t:node>    extensible,
+    <t:integer> fnt,
+    <t:integer> chr,
+    <t:integer> size,
+    <t:integer> width,
+    <t:integer> height,
+    <t:integer> depth,
+    <t:integer> linewidth,
+    <t:integer> axis,
+    <t:integer> exheight,
+    <t:integer> emwidth
+)
+    return <t:node> -- boxed extensible
 end
-\stopfunctioncall
+\stoptyping
 
-The incident is one of \type {overfull}, \type {underfull}, \type {loose} or
-\type {tight}. The detail is either the amount of overflow in case of \type
-{overfull}, or the badness otherwise. The head is the list that is constructed.
+\stopsubsection
 
+\startsubsection[title=register_extensible]
+
+This callback is a possible follow up on \typ {make_extensible} and it can be
+used to share pre-build extensibles or package them otherwise (for instance as
+\TYPETHREE\ glyph).
+
+\starttyping[option=LUA]
+function (
+    <t:integer> fnt,
+    <t:integer> chr,
+    <t:integer> size,
+    <t:node>    attributes,
+    <t:node>    extensible
+)
+    return <t:node> -- boxed
+end
+\stoptyping
+
 \stopsubsection
 
-\startsubsection[title={\type {show_lua_call}}]
+\startsubsection[title=balance]
 
-\topicindex{callbacks+lua}
+This callback is comparable with the \type {line_break} callback. We use it for
+tracing in \CONTEXT\ during development (as well as for documentation).
 
-This one can be used to help reporting definitions that relate to \LUA\ calls to
-be more meaningful when tracing.
+\stopsubsection
 
-\startfunctioncall
-function(<string> name, <number> index)
-    return <string>
+\startsubsection[title=balance_insert]
+
+This is callback kicks in every time an insert is seen when balancing.
+
+\starttyping[option=LUA]
+function (
+    <t:node>    current,
+    <t:integer> callback,
+    <t:integer> insert_index,
+    <t:integer> insert_identifier
+)
+    -- no return value
 end
-\stopfunctioncall
+\stoptyping
 
 \stopsubsection
 
-\startsubsection[title={\type {handle_overload}}]
+\startsubsection[title=balance_boundary]
 
-\topicindex{callbacks+overload}
+When balancing, this is callback kicks in every time a node resulting from \prm
+{balanceboundary} is seen.
 
-This is one of the few callbacks that is aimed at \CONTEXT: it relates to overload
-protection of macros and other variables.
-
-\startfunctioncall
-function(<boolean> error, <number> overload, <string> csname, <number> flags)
-    -- no return values
+\starttyping[option=LUA]
+function (
+    <t:integer> boundary_data,
+    <t:integer> boundary_reserved,
+    <t:integer> shape_identifier,
+    <t:integer> shape_slot
+)
+    return
+        <t:integer>, -- action
+        <t:integer>, -- penalty
+        <t:integer>  -- extra
 end
-\stopfunctioncall
+\stoptyping
 
-The overload is determined by:
+What happens after the callback returns control to \TEX\ depends on the first
+return value:
 
-\starttabulate[|c|l|c|c|c|c|c|]
-\DB   \BC         \BC immutable \BC permanent \BC primitive \BC frozen \BC instance \NC \NR
-\TB
-\NC 1 \NC warning \NC \star     \NC \star     \NC \star     \NC        \NC          \NC \NR
-\NC 2 \NC error   \NC \star     \NC \star     \NC \star     \NC        \NC          \NC \NR
-\NC 3 \NC warning \NC \star     \NC \star     \NC \star     \NC \star  \NC          \NC \NR
-\NC 4 \NC error   \NC \star     \NC \star     \NC \star     \NC \star  \NC          \NC \NR
-\NC 5 \NC warning \NC \star     \NC \star     \NC \star     \NC \star  \NC \star    \NC \NR
-\NC 6 \NC error   \NC \star     \NC \star     \NC \star     \NC \star  \NC \star    \NC \NR
-\LL
-\stoptabulate
+\showenginevalues{getbalancecallbackvalues}
 
-This relates to the optional prefixed that can be used when defining and setting
-quantities and is therefore also a bit of a playground. All macros and aliases in
-\CONTEXT\ are classified this way.
+This is an experimental feature. In due time there will be a bit more explanation
+here.
 
+\stopsubsection
+
 \stopsection
 
-\stopchapter
+\stopdocument
 
-\stopcomponent
+% timestamp october 2024, after running into Anna von Hausswolff's "All Thoughts
+% Fly" live at Basilica di Santa Maria dei Servi 29.11.2021

Deleted: trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametatex/luametatex-codes.tex
===================================================================
--- trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametatex/luametatex-codes.tex	2025-02-19 22:18:46 UTC (rev 74155)
+++ trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametatex/luametatex-codes.tex	2025-02-19 22:48:50 UTC (rev 74156)
@@ -1,24 +0,0 @@
-% language=us runpath=texruns:manuals/luametatex
-
-\environment luametatex-style
-
-\startcomponent luametatex-codes
-
-\startchapter[title=Primitive codes]
-
-here follows a list with all primitives and their category is shown. When the
-engine starts up in ini mode all primitives get defined along with some
-properties that makes it possible to do a reverse lookup of a combination of
-command code and char code. But, a primitive, being also a regular command can be
-redefined later on. The table below shows the original pairs but in \CONTEXT\
-some of these primitives are redefined. However, any macro that fits a command
-and char pair is (reported as) a primitive in logs and error messages. In the end
-all tokens are such a combination, The first 16 command codes are reserved for
-characters (the whole \UNICODE\ range can be used as char code) with specific
-catcodes and not mentioned in the list.
-
-\ctxlua{document.allprimitives()}
-
-\stopchapter
-
-\stopcomponent

Added: trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametatex/luametatex-constructions.tex
===================================================================
--- trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametatex/luametatex-constructions.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/context/sources/general/manuals/luametatex/luametatex-constructions.tex	2025-02-19 22:48:50 UTC (rev 74156)
@@ -0,0 +1,785 @@
+% language=us runpath=texruns:manuals/luametatex
+
+\environment luametatex-style
+
+\startdocument[title=Constructions]
+
+\startluacode
+local styles     = tex.getmathstylevalues    () styles     = table.swapped(styles,styles)
+local parameters = tex.getmathparametervalues() parameters = table.swapped(parameters,parameters)
+local variants   = tex.getmathvariantvalues  () variants   = table.swapped(variants,variants)
+local presets    = tex.getmathvariantpresets () presets    = table.swapped(presets,presets)
+
+-- inspect(presets)
+-- inspect(presets)
+
+function document.printmathpresets()
+    context.starttabulate { "||||" }
+    context.FL()
+    context.BC() context("construct")
+    context.BC() context("value")
+    context.BC() context("preset name")
+    context.BC() context.NR()
+    context.TL()
+    for parameter=parameters.overlinevariant,parameters.stackvariant do
+        local value  = tex.getmath(parameter,"display")
+        local preset = variants[presets[value]]
+        context.NC() context.type("\\Umath"..parameters[parameter])
+        context.NC() context("0x%08X",value)
+        context.NC() context(preset)
+        context.NC() context.NR()
+    end
+    context.LL()
+    context.stoptabulate()
+end
+
+function document.printmathvariants()
+    for parameter=parameters.overlinevariant,parameters.stackvariant do
+        for style=styles.display,styles.crampedscriptscript do
+            local p, s = tex.getmathstylevariant(style,parameter)
+            if p and s then
+                 logs.report("mathvariants","%-24s %-20s %-18s %-20s",parameters[parameter],styles[style],variants[p],styles[s])
+            end
+        end
+    end
+end
+
+function document.showmathvariant(variant)
+    local parameter = type(variant) == "string" and parameters[variant] or variant
+    context.startsubsubsubject { title = variant }
+    context.starttabulate { "||T||" }
+    context.BC() context("current style")
+    context.BC() context("mapping")
+    context.BC() context("used style")
+    context.BC() context.NR()
+    context.ML()
+    for style=styles.display,styles.crampedscriptscript do
+        local p, s = tex.getmathstylevariant(style,parameter)
+        if p and s then
+            context.NC() context(styles[style])
+            context.NC() context("0x%08X",p)
+            context.NC() context(styles[s])
+            context.NC() context.NR()
+        end
+    end
+    context.stoptabulate()
+    context.stopsubsubsubject()
+end
+\stopluacode
+
+\startsection[title={Introduction}]
+
+This is more a discussion of the way some constructs in for instance math work.
+It will never be exhausting and mostly is for our own usage. We don't discuss all
+the options bit many are interfaced in higher level macros in \CONTEXT. This
+chapter will gradually grow, depending on time and mood.
+
+\stopsection
+
+\startsection[title=Boxes]
+
+Boxes are very important in \TEX. We have horizontal boxes and vertical boxes.
+When you look at a page of text, the page itself is a vertical box, and among
+other things it packs lines that are themselves horizontal boxes. The lines that
+make a paragraph are the result of breaking a long horizontal box in smaller
+pieces.
+
+\startlinecorrection
+\ruledvbox \bgroup \hsize 20em \showmakeup[line] \showboxes
+    This is a vertical box. It has a few lines of text that started out as
+    one long line but has been broken in pieces. Doing this as good as possible
+    is one of \TEX's virtues.
+\egroup
+\stoplinecorrection
+
+There is a low level manual on boxes so here we can limit the discussion to
+basics. A box is in \TEX\ speak a node. In traditional \TEX\ it has a
+width, height, depth and shift.
+
+\startlinecorrection
+\startMPcode
+    numeric wd ; wd := 24 ;
+    numeric ht ; ht :=  7 ;
+    numeric dp ; dp :=  3 ;
+
+    path body ; body := unitsquare xyscaled (wd, ht+dp) shifted (0,-dp) ;
+    path line ; line := (0,0) -- (wd,0) ;
+
+    draw line withcolor "middlegray" ;
+    draw body withcolor "darkred" ;
+
+    currentpicture := currentpicture scaled 5 ;
+\stopMPcode
+\stoplinecorrection
+
+Here we see a box and the gray line is called the baseline, the height goes up
+and the depth goes down. Normally the height and depth are determined by what
+goes in the box but they can be changed as we like.
+
+\startbuffer
+\setbox\scratchboxone\ruledhpack{SHIFT 1}
+\setbox\scratchboxtwo\ruledhpack{SHIFT 2}
+
+\boxshift\scratchboxtwo 1ex \dontleavehmode \box\scratchboxone\box\scratchboxtwo
+
+\setbox\scratchboxone\ruledvpack{SHIFT 3}
+\setbox\scratchboxtwo\ruledvpack{SHIFT 4}
+
+\boxshift\scratchboxtwo 1ex \box\scratchboxone\box\scratchboxtwo
+\stopbuffer
+
+\typebuffer
+
+In this example you'll notice that the shift depends on the box being horizontal
+or vertical. The primitives \type {\raise}, \type {\lower}, \type {\moveleft} and
+\type {\moveright} can be used to shift a box.
+
+\startlinecorrection
+\getbuffer
+\stoplinecorrection
+
+The reason why we have the shift property is that it is more efficient than
+wrapping a box in another box and shifting with kerns. In that case we also have
+to go via a box register so that we can manipulate the final dimensions. Another
+advantage is that the engine can use shifts to position for instance elements in
+a math formula and even the par builder used shifts to deal with positioning the
+lines according to shape and margin. In \LUAMETATEX\ the later is no longer the
+case.
+
+Inside a box there can be mark (think running headers), insert (think footnotes)
+and adjust (think injecting something before or after the current line) nodes. The
+par builder will move this from inside the box to between the lines but when boxes
+are nested too deeply this won't happen and they get lost. In \LUAMETATEX\ these
+objects do bubble up because we make them box properties. So, in addition to
+the dimensions and shift a box also has migration fields.
+
+In the low level manuals you can find examples of accessing various properties of
+boxes so here we stick to a short description. The reason for mentioning them is
+that it gives you an idea of what goes on in the engine.
+
+\starttabulate
+\FL
+\BC field                 \BC usage \NC \NR
+\TL
+\NC \type {width}         \NC the (used) width \NC \NR
+\NC \type {height}        \NC the (used) height \NC \NR
+\NC \type {depth}         \NC the (used) depth \NC \NR
+\NC \type {shift_amount}  \NC the shift (right or down) \NC \NR
+\ML
+\NC \type {list}          \NC pointer to the content \NC \NR
+\ML
+\NC \type {glue_order}    \NC the calculated order of glue stretch of shrink \NC \NR
+\NC \type {glue_sign}     \NC the determined sign of glue stretch of shrink \NC \NR
+\NC \type {glue_set}      \NC the calculated multiplier for glue stretch or shrink \NC \NR
+\ML
+\NC \type {geometry}      \NC a bit set registering manipulations \NC \NR
+\NC \type {orientation}   \NC positional manipulations \NC \NR
+\NC \type {w_offset}      \NC used in horizontal movement calculations \NC \NR
+\NC \type {h_offset}      \NC used in vertical movement calculations \NC \NR
+\NC \type {d_offset}      \NC used in vertical movement calculations \NC \NR
+\NC \type {x_offset}      \NC a horizontal shift independent of dimensions \NC \NR
+\NC \type {y_offset}      \NC a vertical shift independent of dimensions  \NC \NR
+\NC \type {axis}          \NC the math axis \NC \NR
+\ML
+\NC \type {dir}           \NC the direction the box goes to (l2r or r2l) \NC \NR
+\NC \type {package_state} \NC a bitset indicating how the box came to be as it is \NC \NR
+\NC \type {index}         \NC a (system dependent) identifier \NC \NR
+\ML
+\NC \type {pre_migrated}  \NC content bound to the box that eventually will be injected \NC \NR
+\NC \type {post_migrated} \NC idem \NC \NR
+\NC \type {pre_adjusted}  \NC idem \NC \NR
+\NC \type {post_adjusted} \NC idem \NC \NR
+\ML
+\NC \type {source_anchor} \NC an identifier bound to the box \NC \NR
+\NC \type {target_anchor} \NC idem \NC \NR
+\NC \type {anchor}        \NC a bitset indicating where and how to anchor \NC \NR
+\ML
+\NC \type {except}        \NC carried information about additional virtual depth \NC \NR
+\NC \type {exdepth}       \NC additional virtual depth taken into account in the page builder \NC \NR
+\LL
+\stoptabulate
+
+We have the usual dimension but also extra ones that relate to \typ {\boxxoffset}
+and \typ {\boxyoffset} (these are virtual) as well as \typ {\boxxmove} and \typ
+{\boxymove} (these influence dimensions). The \typ {\boxorientation} also gets
+registered. The state fields carry information that is used in various places,
+the pre and post fields relate to the mentioned embedded content. Anchors are
+just there so that a macro package can play with this and excepts refer to an
+additional dimensions that is looked at in the page builder, for instance in
+order to prevent a page break at an unlucky spot. It all gives an indication of
+what we are dealing with.
+
+\stopsection
+
+\startsection[title=Math style variants]
+
+The \LUAMETATEX\ math engine is a follow up on the one in \LUATEX. That one
+gradually became more configurable in order to deal with both traditional fonts
+and \OPENTYPE\ fonts. In \LUAMETATEX\ much has been redone, opened up and
+extended. New mechanisms and constructs have been added. In the process hard
+coded heuristics with regards to math styles inside constructions were made
+configurable, a feature that is probably not used much, apart from experimenting.

@@ Diff output truncated at 1234567 characters. @@


More information about the tex-live-commits mailing list.