summaryrefslogtreecommitdiff
path: root/tex
diff options
context:
space:
mode:
authorMarius <mariausol@gmail.com>2013-05-14 00:20:25 +0300
committerMarius <mariausol@gmail.com>2013-05-14 00:20:25 +0300
commit86bd4f60148236a4713cb3654cbfa0fceed727ff (patch)
tree36870ef5efb6429deaa7f215c4acb249f0bbc6af /tex
parent5dfe20ad3addaa59321312156eb368a37b27bb4a (diff)
downloadcontext-86bd4f60148236a4713cb3654cbfa0fceed727ff.tar.gz
beta 2013.05.13 23:17
Diffstat (limited to 'tex')
-rw-r--r--tex/context/base/cldf-bas.lua2
-rw-r--r--tex/context/base/cont-fil.mkiv2
-rw-r--r--tex/context/base/cont-new.mkiv2
-rw-r--r--tex/context/base/context-version.pdfbin4135 -> 4138 bytes
-rw-r--r--tex/context/base/context.mkiv2
-rw-r--r--tex/context/base/font-chk.lua84
-rw-r--r--tex/context/base/mult-low.lua2
-rw-r--r--tex/context/base/s-fonts-missing.mkiv125
-rw-r--r--tex/context/base/s-fonts-tables.lua17
-rw-r--r--tex/context/base/s-fonts-tables.mkiv15
-rw-r--r--tex/context/base/s-math-extensibles.mkiv145
-rw-r--r--tex/context/base/s-present-tiles.mkiv (renamed from tex/context/base/s-pre-41.mkiv)6
-rw-r--r--tex/context/base/status-files.pdfbin24737 -> 24716 bytes
-rw-r--r--tex/context/base/status-lua.pdfbin211501 -> 211592 bytes
-rw-r--r--tex/context/base/status-mkiv.lua16
-rw-r--r--tex/context/base/syst-aux.mkiv13
-rw-r--r--tex/generic/context/luatex/luatex-fonts-merged.lua2
-rw-r--r--tex/generic/context/luatex/luatex-fonts.lua21
-rw-r--r--tex/generic/context/luatex/luatex-math.tex2
19 files changed, 393 insertions, 63 deletions
diff --git a/tex/context/base/cldf-bas.lua b/tex/context/base/cldf-bas.lua
index 298b374f0..08d881271 100644
--- a/tex/context/base/cldf-bas.lua
+++ b/tex/context/base/cldf-bas.lua
@@ -72,7 +72,7 @@ function context.egroup()
end
function context.space()
- context(" ")
+ context("\\space") -- no " " as that gets intercepted
end
function context.hrule(w,h,d,dir)
diff --git a/tex/context/base/cont-fil.mkiv b/tex/context/base/cont-fil.mkiv
index db09cee3e..0b239a977 100644
--- a/tex/context/base/cont-fil.mkiv
+++ b/tex/context/base/cont-fil.mkiv
@@ -73,6 +73,8 @@
\definefilesynonym [pre-cycle] [pre-22]
\definefilesynonym [pre-super] [pre-23]
+\definefilesynonym [pre-41] [present-tiles]
+
%definefilesynonym [pre-more] [pre-24]
%definefilesynonym [pre-more] [pre-25]
\definefilesynonym [pre-more] [pre-26]
diff --git a/tex/context/base/cont-new.mkiv b/tex/context/base/cont-new.mkiv
index a9356bb2b..cf920d0e6 100644
--- a/tex/context/base/cont-new.mkiv
+++ b/tex/context/base/cont-new.mkiv
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\newcontextversion{2013.05.12 22:16}
+\newcontextversion{2013.05.13 23:17}
%D This file is loaded at runtime, thereby providing an excellent place for
%D hacks, patches, extensions and new features.
diff --git a/tex/context/base/context-version.pdf b/tex/context/base/context-version.pdf
index 66a6ac062..1fd737dca 100644
--- a/tex/context/base/context-version.pdf
+++ b/tex/context/base/context-version.pdf
Binary files differ
diff --git a/tex/context/base/context.mkiv b/tex/context/base/context.mkiv
index d84524f28..ae05c55f3 100644
--- a/tex/context/base/context.mkiv
+++ b/tex/context/base/context.mkiv
@@ -25,7 +25,7 @@
%D up and the dependencies are more consistent.
\edef\contextformat {\jobname}
-\edef\contextversion{2013.05.12 22:16}
+\edef\contextversion{2013.05.13 23:17}
\edef\contextkind {beta}
%D For those who want to use this:
diff --git a/tex/context/base/font-chk.lua b/tex/context/base/font-chk.lua
index 9e7e31aff..1b89366fd 100644
--- a/tex/context/base/font-chk.lua
+++ b/tex/context/base/font-chk.lua
@@ -49,7 +49,7 @@ local action = false
-- to tfmdata.properties ?
-local function onetimemessage(font,char,message)
+local function onetimemessage(font,char,message) -- char == false returns table
local tfmdata = fontdata[font]
local shared = tfmdata.shared
local messages = shared.messages
@@ -62,7 +62,9 @@ local function onetimemessage(font,char,message)
category = { }
messages[message] = category
end
- if not category[char] then
+ if char == false then
+ return table.sortedkeys(category)
+ elseif not category[char] then
report_fonts("char %U in font %a with id %a: %s",char,tfmdata.properties.fullname,font,message)
category[char] = true
end
@@ -189,8 +191,15 @@ registerotffeature {
}
}
+fonts.loggers.add_placeholders = function(id) addmissingsymbols(fontdata[id or true]) end
fonts.loggers.category_to_placeholder = mapping
+function commands.getplaceholderchar(name)
+ local id = font.current()
+ addmissingsymbols(fontdata[id])
+ context(fonts.helpers.getprivatenode(fontdata[id],name))
+end
+
function checkers.missing(head)
local lastfont, characters, found = nil, nil, nil
for n in traverse_id(glyph_code,head) do -- faster than while loop so we delay removal
@@ -251,9 +260,48 @@ function checkers.missing(head)
return head, false
end
+local relevant = { "missing (will be deleted)", "missing (will be flagged)", "missing" }
+
+function checkers.getmissing(id)
+ if id then
+ local list = checkers.getmissing(font.current())
+ if list then
+ local _, list = next(checkers.getmissing(font.current()))
+ return list
+ else
+ return { }
+ end
+ else
+ local t = { }
+ for id, d in next, fontdata do
+ local shared = d.shared
+ local messages = shared.messages
+ if messages then
+ local tf = t[d.properties.filename] or { }
+ for i=1,#relevant do
+ local tm = messages[relevant[i]]
+ if tm then
+ tf = table.merged(tf,tm)
+ end
+ end
+ if next(tf) then
+ t[d.properties.filename] = tf
+ end
+ end
+ end
+ for k, v in next, t do
+ t[k] = table.sortedkeys(v)
+ end
+ return t
+ end
+end
+
+local tracked = false
+
trackers.register("fonts.missing", function(v)
if v then
enableaction("processors","fonts.checkers.missing")
+ tracked = true
else
disableaction("processors","fonts.checkers.missing")
end
@@ -265,15 +313,47 @@ end)
function commands.checkcharactersinfont()
enableaction("processors","fonts.checkers.missing")
+ tracked = true
end
function commands.removemissingcharacters()
enableaction("processors","fonts.checkers.missing")
action = "remove"
+ tracked = true
end
function commands.replacemissingcharacters()
enableaction("processors","fonts.checkers.missing")
action = "replace"
otffeatures.defaults.missing = true
+ tracked = true
end
+
+local report_characters = logs.reporter("fonts","characters")
+local report_character = logs.reporter("missing")
+
+local logsnewline = logs.newline
+local logspushtarget = logs.pushtarget
+local logspoptarget = logs.poptarget
+
+luatex.registerstopactions(function()
+ if tracked then
+ local collected = checkers.getmissing()
+ if next(collected) then
+ logspushtarget("logfile")
+ for filename, list in table.sortedhash(collected) do
+ logsnewline()
+ report_characters("start missing characters: %s",filename)
+ logsnewline()
+ for i=1,#list do
+ local u = list[i]
+ report_character("%U %c %s",u,u,chardata[u].description)
+ end
+ logsnewline()
+ report_characters("stop missing characters")
+ logsnewline()
+ end
+ logspoptarget()
+ end
+ end
+end)
diff --git a/tex/context/base/mult-low.lua b/tex/context/base/mult-low.lua
index 05124bc78..2e960114e 100644
--- a/tex/context/base/mult-low.lua
+++ b/tex/context/base/mult-low.lua
@@ -265,7 +265,7 @@ return {
"gobbleoneargument", "gobbletwoarguments", "gobblethreearguments", "gobblefourarguments", "gobblefivearguments", "gobblesixarguments", "gobblesevenarguments", "gobbleeightarguments", "gobbleninearguments", "gobbletenarguments",
"gobbleoneoptional", "gobbletwooptionals", "gobblethreeoptionals", "gobblefouroptionals", "gobblefiveoptionals",
--
- "dorecurse", "doloop", "exitloop", "dostepwiserecurse", "recurselevel", "recursedepth", "dofastloopcs",
+ "dorecurse", "doloop", "exitloop", "dostepwiserecurse", "recurselevel", "recursedepth", "dofastloopcs", "dowith",
--
"newconstant", "setnewconstant", "newconditional", "settrue", "setfalse", "setconstant",
"newmacro", "setnewmacro", "newfraction",
diff --git a/tex/context/base/s-fonts-missing.mkiv b/tex/context/base/s-fonts-missing.mkiv
index ef45383a0..ec22e185b 100644
--- a/tex/context/base/s-fonts-missing.mkiv
+++ b/tex/context/base/s-fonts-missing.mkiv
@@ -13,55 +13,114 @@
\startluacode
- moduledata.fonts = moduledata.fonts or { }
- moduledata.fonts.tracers = moduledata.fonts.tracers or { }
- moduledata.fonts.tracers.missing = moduledata.fonts.tracers.missing or { }
-
- function moduledata.fonts.tracers.missing.legend()
- local c = fonts.hashes.identifiers[font.current()]
- local p = c.properties.privates
- if p then
- context.starttabulate { "|Tl|c|c|" }
- context.NC()
- context.bold("name")
- context.NC()
- context.bold("character")
- context.NC()
- context.bold("node")
- context.NC()
- context.NR()
- for k, v in table.sortedhash(p) do
+ moduledata.fonts = moduledata.fonts or { }
+ moduledata.fonts.missing = moduledata.fonts.missing or { }
+
+ function moduledata.fonts.missing.legend(id)
+ local c = fonts.hashes.identifiers[id or font.current()]
+ local privates = c.properties.privates
+ if privates then
+ local categories = table.swapped(fonts.loggers.category_to_placeholder)
+ -- context.starttabulate { "|l|c|c|l|" }
+ context.starttabulate { "|l|c|l|" }
context.NC()
- context(k)
+ context.bold("name")
context.NC()
- context.dontleavehmode()
- context.char(v)
+ context.bold("symbol")
context.NC()
- context.dontleavehmode()
- commands.getprivatechar(k)
+ -- context.bold("node")
+ -- context.NC()
+ context.bold("category")
context.NC()
context.NR()
- end
+ context.HL()
+ for k, v in table.sortedhash(privates) do
+ local tag = characters.categorytags[categories[k]]
+ if tag and tag ~= "" then
+ context.NC()
+ context(k)
+ context.NC()
+ context.dontleavehmode()
+ context.char(v)
+ context.NC()
+ -- context.dontleavehmode()
+ -- commands.getprivatechar(k)
+ -- context.NC()
+ context(string.lower(tag))
+ context.NC()
+ context.NR()
+ end
+ end
context.stoptabulate()
end
end
+ function moduledata.fonts.missing.characters()
+ local collected = fonts.checkers.getmissing()
+ for filename, list in table.sortedhash(collected) do
+ if #list > 0 then
+ context.starttabulate { "|l|l|" }
+ context.NC()
+ context.bold("filename")
+ context.NC()
+ context(file.basename(filename))
+ context.NC()
+ context.NR()
+ context.NC()
+ context.bold("missing")
+ context.NC()
+ context(#list)
+ context.NC()
+ context.NR()
+ context.stoptabulate()
+ context.starttabulate { "|l|c|l|" }
+ for i=1,#list do
+ local u = list[i]
+ context.NC()
+ context("%U",u)
+ context.NC()
+ context.char(u)
+ context.NC()
+ context(characters.data[u].description)
+ context.NC()
+ context.NR()
+ end
+ context.stoptabulate()
+ end
+ end
+ end
+
\stopluacode
-\def\ModuleFontsTracersMissingLegend
- {\ctxlua{moduledata.fonts.tracers.missing.legend()}}
+\definefontfeature[missing][missing=yes]
+
+\unexpanded\def\showmissingcharacterslegend
+ {\begingroup
+ \definedfont[Mono*missing]% else no privates added
+ \ctxlua{moduledata.fonts.missing.legend()}%
+ \endgroup}
+
+\unexpanded\def\showmissingcharacters
+ {\begingroup
+ \definedfont[Mono*missing]% else no privates added
+ \ctxlua{moduledata.fonts.missing.characters()}%
+ \endgroup}
\continueifinputfile{s-fonts-missing.mkiv}
-\enabletrackers[fonts.missing=replace] % the sooner, the more efficient
+% the sooner, the more efficient, see log for details
-% \usemodule[art-01]
+% \enabletrackers[fonts.missing=replace]
% \definefontfeature[default][default][missing=yes] % automatically when enabled
+% \usemodule[art-01]
+
\starttext
- \ModuleFontsTracersMissingLegend
+ \showmissingcharacterslegend
+
+ \page
½ ⅓ ¼ ⅕ ⅙ ⅛
@@ -75,5 +134,13 @@
end
\stopluacode
+ \page
+
+ \bf ½ ⅓ ¼ ⅕ ⅙ ⅛
+
+ \page
+
+ \showmissingcharacters
+
\stoptext
diff --git a/tex/context/base/s-fonts-tables.lua b/tex/context/base/s-fonts-tables.lua
index 3cf1286a7..442fadfef 100644
--- a/tex/context/base/s-fonts-tables.lua
+++ b/tex/context/base/s-fonts-tables.lua
@@ -12,11 +12,10 @@ local sortedkeys = table.sortedkeys
local format = string.format
local concat = table.concat
-moduledata.fonts = moduledata.fonts or { }
-moduledata.fonts.tracers = moduledata.fonts.tracers or { }
-moduledata.fonts.tracers.tables = moduledata.fonts.tracers.tables or { }
+moduledata.fonts = moduledata.fonts or { }
+moduledata.fonts.tables = moduledata.fonts.tables or { }
-local tabletracers = moduledata.fonts.tracers.tables
+local tabletracers = moduledata.fonts.tables
local digits = {
dflt = {
@@ -175,7 +174,7 @@ function tabletracers.parameters(nesting)
typeset(tfmdata.parameters,fonts.constructors.keys.parameters,nesting)
end
-function tabletracers.positionalfeatures()
+function tabletracers.positionings()
local tfmdata = fonts.hashes.identifiers[font.current()]
local resources = tfmdata.resources
if resources then
@@ -207,7 +206,7 @@ end
local dynamics = true
-function tabletracers.substitutionfeatures()
+function tabletracers.substitutions()
local tfmdata = fonts.hashes.identifiers[font.current()]
local resources = tfmdata.resources
if resources then
@@ -304,12 +303,12 @@ function tabletracers.all(settings) -- not interfaced
tabletracers.parameters()
context.stopsubject()
- context.startsubject { title = "Positional features" }
- tabletracers.positionalfeatures()
+ context.startsubject { title = "Positioning features" }
+ tabletracers.positionings()
context.stopsubject()
context.startsubject { title = "Substitution features" }
- tabletracers.substitutionfeatures()
+ tabletracers.substitutions()
context.stopsubject()
if title then
diff --git a/tex/context/base/s-fonts-tables.mkiv b/tex/context/base/s-fonts-tables.mkiv
index efe1500fb..07e80377c 100644
--- a/tex/context/base/s-fonts-tables.mkiv
+++ b/tex/context/base/s-fonts-tables.mkiv
@@ -11,12 +11,19 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-% todo: make a mtxrun --script --font <name> option
+% todo: make a mtxrun --script font <name> option
\registerctxluafile{s-fonts-tables}{}
-\def\ModuleFontsTracersTablesAll[#1]%
- {\ctxlua{moduledata.fonts.tracers.tables.all("#1")}}
+\unexpanded\def\showfonttables[#1]%
+ {\begingroup
+ \ctxlua{moduledata.fonts.tables.all("#1")}% currently not interfaced
+ \endgroup}
+
+\unexpanded\def\showfontproperties {\ctxlua{moduledata.fonts.tables.properties ()}}
+\unexpanded\def\showfontparameters {\ctxlua{moduledata.fonts.tables.parameters ()}}
+\unexpanded\def\showfontpositionings {\ctxlua{moduledata.fonts.tables.positionings ()}}
+\unexpanded\def\showfontsubstitutions{\ctxlua{moduledata.fonts.tables.substitutions()}}
\continueifinputfile{s-fonts-tables.mkiv}
@@ -26,5 +33,5 @@
[cambria]
\starttext
- \ModuleFontsTracersTablesAll[title=Cambria]
+ \showfonttables[title=Cambria]
\stoptext
diff --git a/tex/context/base/s-math-extensibles.mkiv b/tex/context/base/s-math-extensibles.mkiv
new file mode 100644
index 000000000..7400d6564
--- /dev/null
+++ b/tex/context/base/s-math-extensibles.mkiv
@@ -0,0 +1,145 @@
+%D \module
+%D [ file=s-math-extensibles.mkiv,
+%D version=2013.02.03,
+%D title=\CONTEXT\ Style File,
+%D subtitle=Math Stackers Checking,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D This module provides a macro that will typeset a table of (horizontal)
+%D extensibles including some tracing. You can set up the \type {demo}
+%D stacker category to tweak things.
+%D
+%D \starttyping
+%D \showmathextensibles[alternative=a|b]
+%D \stoptyping
+
+\startmodule[mat-14]
+
+\unprotect
+
+\definemathstackers
+ [demo]
+ [math]
+ [\c!offset=\v!max]
+
+\installcorenamespace{modulemathextensibles}
+\installcorenamespace{modulemathextensiblesalternative}
+
+\installdirectsetuphandler \??modulemathextensibles {modulemathextensibles}
+
+\setupmodulemathextensibles
+ [\c!alternative=\v!a]
+
+\unexpanded\def\showmathextensibles
+ {\dosingleempty\module_math_extensibles_show_all}
+
+\def\module_math_extensibles_show_all[#1]%
+ {\begingroup
+ \setupcurrentmodulemathextensibles[#1]%
+ \expandnamespacevalue\??modulemathextensiblesalternative\c!alternative\v!a
+ \endgroup}
+
+\def\modulemathextensiblesalternativea#1#2#3%
+ {\NC U+#1
+ \NC \filledhboxm{\math{\char"#1}}
+ \NC \hbox{\math{\mathextensible[demo]{"#1}{top}{bottom}}}
+ \NC \hbox{\math{\mathextensible[demo]{"#1}{}{bottom}}}
+ \NC \hbox{\math{\mathextensible[demo]{"#1}{top}{}}}
+ \NC \nohyphens \veryraggedright #2
+ \NC\NR}
+
+\setvalue{\??modulemathextensiblesalternative\v!a}%
+ {\enabletrackers[math.stackers.texts]
+ \starttabulate[|Tl|l|l|l|l|Tp|]
+ \ctxlua { moduledata.math.extensibles.show {
+ command = "modulemathextensiblesalternativea",
+ } }
+ \stoptabulate
+ \disabletrackers[math.stackers.texts]}
+
+\def\modulemathextensiblesalternativeb#1#2#3%
+ {\NC U+#1
+ \NC \math{\char"#1}
+ \NC \nohyphens \veryraggedright #3
+ \NC \NR}
+
+\setvalue{\??modulemathextensiblesalternative\v!b}%
+ {\enabletrackers[math.stackers.texts]
+ \starttabulate[|Tl|l|Tp|]
+ \ctxlua { moduledata.math.extensibles.show {
+ command = "modulemathextensiblesalternativeb",
+ sparse = true,
+ } }
+ \stoptabulate
+ \disabletrackers[math.stackers.texts]}
+
+\startluacode
+ moduledata.math = moduledata.math or { }
+ moduledata.math.extensibles = moduledata.math.extensibles or { }
+
+ function moduledata.math.extensibles.show(settings)
+ local command = settings.command
+ local sparse = settings.sparse
+ for k, v in table.sortedhash(characters.data) do
+ local mathextensible = v.mathextensible
+ if mathextensible == "r" or mathextensible == "l" or mathextensible == "h" then
+ local names = { }
+ local mathname = v.mathname
+ if mathname then
+ names[#names+1] = v.mathclass .. ":" .. mathname
+ end
+ local mathspec = v.mathspec
+ if mathspec then
+ for i=1,#mathspec do
+ local v = mathspec[i]
+ names[#names+1] = v.class .. ":" .. v.name
+ end
+ end
+ local mathfiller = v.mathfiller
+ if mathfiller then
+ names[#names+1] = "filler:" .. mathfiller
+ end
+ if not sparse or #names > 0 then
+ context[command](string.format("%04X",k),v.description,table.concat(names," "))
+ end
+ end
+ end
+ end
+\stopluacode
+
+\protect
+
+\stopmodule
+
+\continueifinputfile{s-math-extensibles.mkiv}
+
+\setuplayout
+ [width=middle,
+ height=middle,
+ footer=0cm,
+ backspace=1.5cm,
+ topspace=1.5cm]
+
+\setuphead[chapter][style=\bfc]
+\setuphead[section][style=\bfa]
+
+\starttext
+
+ \dowith {a,b} {
+
+ \page \title {Latin Modern} \showmathextensibles[alternative=#1]
+ \page \setupbodyfont[pagella] \title {Pagella} \showmathextensibles[alternative=#1]
+ \page \setupbodyfont[termes] \title {Termes} \showmathextensibles[alternative=#1]
+ \page \setupbodyfont[dejavu] \title {Xits} \showmathextensibles[alternative=#1]
+ \page \setupbodyfont[cambria] \title {Cambria} \showmathextensibles[alternative=#1]
+ \page \setupbodyfont[lucidaot] \title {Lucida} \showmathextensibles[alternative=#1]
+
+ }
+
+\stoptext
diff --git a/tex/context/base/s-pre-41.mkiv b/tex/context/base/s-present-tiles.mkiv
index c0465934c..80ea5249f 100644
--- a/tex/context/base/s-pre-41.mkiv
+++ b/tex/context/base/s-present-tiles.mkiv
@@ -1,8 +1,8 @@
%D \module
-%D [ file=s-pre-41,
+%D [ file=s-present-tiles, % was s-pre-41
%D version=2013.03.24,
%D title=\CONTEXT\ Style File,
-%D subtitle=Presentation Environment 41,
+%D subtitle=Presentation Environment Tiles,
%D author=Hans Hagen,
%D date=\currentdate,
%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
@@ -288,7 +288,7 @@
\setupdocument
[before=\directsetup{document:titlepage}]
-\continueifinputfile{s-pre-41.mkiv}
+\continueifinputfile{s-present-tiles.mkiv}
\startdocument[title=Whatever We\\Want Here,subtitle=Whatever We\\Want There]
diff --git a/tex/context/base/status-files.pdf b/tex/context/base/status-files.pdf
index a5e888b2c..7e3205cf4 100644
--- a/tex/context/base/status-files.pdf
+++ b/tex/context/base/status-files.pdf
Binary files differ
diff --git a/tex/context/base/status-lua.pdf b/tex/context/base/status-lua.pdf
index b65354c6b..9f572c8d8 100644
--- a/tex/context/base/status-lua.pdf
+++ b/tex/context/base/status-lua.pdf
Binary files differ
diff --git a/tex/context/base/status-mkiv.lua b/tex/context/base/status-mkiv.lua
index 95139d1d4..62df5806f 100644
--- a/tex/context/base/status-mkiv.lua
+++ b/tex/context/base/status-mkiv.lua
@@ -4262,7 +4262,7 @@ return {
{
category = "lua",
filename = "s-fonts-tables",
- status = "todo",
+ status = "okay",
},
{
category = "lua",
@@ -5306,12 +5306,12 @@ return {
{
category = "mkiv",
filename = "s-fonts-missing",
- status = "todo",
+ status = "okay",
},
{
category = "mkiv",
filename = "s-fonts-tables",
- status = "todo",
+ status = "okay",
},
{
category = "mkvi",
@@ -5380,6 +5380,11 @@ return {
},
{
category = "mkiv",
+ filename = "s-math-extensibles",
+ status = "okay",
+ },
+ {
+ category = "mkiv",
filename = "s-mod-00",
status = "todo",
},
@@ -5524,6 +5529,11 @@ return {
status = "todo",
},
{
+ category = "mkiv",
+ filename = "s-present-tiles",
+ status = "okay",
+ },
+ {
category = "tex",
filename = "s-pre-50",
status = "todo",
diff --git a/tex/context/base/syst-aux.mkiv b/tex/context/base/syst-aux.mkiv
index 6ed0b4fee..a590d0b65 100644
--- a/tex/context/base/syst-aux.mkiv
+++ b/tex/context/base/syst-aux.mkiv
@@ -3494,6 +3494,19 @@
\global\advance\outerrecurse \minusone }
%D \macros
+%D {dowith}
+%D
+%D Here's a loop over whatever is in a list:
+%D
+%D \starttyping
+%D \dowith{a,b,c}{[#1]}
+%D \stoptyping
+
+\unexpanded\def\dowith#1#2%
+ {\def\syst_helpers_with##1{#2}%
+ \normalexpanded{\processcommalist[#1]}\syst_helpers_with}
+
+%D \macros
%D {doloop,exitloop}
%D
%D Sometimes loops are not determined by counters, but by
diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua
index f814bdb95..c6cadc909 100644
--- a/tex/generic/context/luatex/luatex-fonts-merged.lua
+++ b/tex/generic/context/luatex/luatex-fonts-merged.lua
@@ -1,6 +1,6 @@
-- merged file : luatex-fonts-merged.lua
-- parent file : luatex-fonts.lua
--- merge date : 05/12/13 22:16:22
+-- merge date : 05/13/13 23:17:22
do -- begin closure to overcome local limits and interference
diff --git a/tex/generic/context/luatex/luatex-fonts.lua b/tex/generic/context/luatex/luatex-fonts.lua
index 29bfd5b40..89592fcac 100644
--- a/tex/generic/context/luatex/luatex-fonts.lua
+++ b/tex/generic/context/luatex/luatex-fonts.lua
@@ -7,19 +7,25 @@ if not modules then modules = { } end modules ['luatex-fonts'] = {
}
-- The following code isolates the generic context code from already defined or to be defined
--- namespaces. This is the reference loader for plain, but the generic code is also used in
--- luaotfload (which is is a file meant for latex) and that used to be maintained by Khaled
--- Hosny. We do our best to keep the interface as clean as possible.
+-- namespaces. This is the reference loader for plain tex. This generic code is also used in
+-- luaotfload which is a low level lualatex opentype font loader but somehow has gotten a bit
+-- too generic name / prefix, originally set up and maintained by Khaled Hosny. Currently that
+-- set of derived files is maintained by a larger team lead by Philipp Gesang so when there are
+-- issues with this code in latex, you can best contact him. It might make sense then to first
+-- check if context has the same issue. We do our best to keep the interface as clean as possible.
--
-- The code base is rather stable now, especially if you stay away from the non generic code. All
-- relevant data is organized in tables within the main table of a font instance. There are a few
-- places where in context other code is plugged in, but this does not affect the core code. Users
-- can (given that their macro package provides this option) access the font data (characters,
--- descriptions, properties, parameters, etc) of this main table.
+-- descriptions, properties, parameters, etc) of this main table. The documentation is part of
+-- context. There is also a manual for the helper libraries (maintained as part of the cld manuals).
--
-- Future versions will probably have some more specific context code removed, like tracing and
-- obscure hooks, so that we have a more efficient version (and less files too). So, don't depend
--- too much on low level code that is meant for context as it can change without notice.
+-- too much on low level code that is meant for context as it can change without notice. We might
+-- also add more helper code here, but that depends to what extend metatex (sidetrack of context)
+-- evolves into a low level layer (depends on time, as usual).
utf = utf or unicode.utf8
@@ -185,8 +191,9 @@ if non_generic_context.luatex_fonts.skip_loading ~= true then
-- The font database file (if used at all) must be put someplace visible for kpse and is not shared
-- with context. The mtx-fonts script can be used to genate this file (using the --names option).
- -- in 2013/14 we will merge/move some generic files into luatex-fonts-* files (copies) so that
- -- intermediate updates of context not interfere; we can then also use the general merger
+ -- In 2013/14 I will merge/move some generic files into luatex-fonts-* files (copies) so that
+ -- intermediate updates of context not interfere. We can then also use the general merger and
+ -- consider stripping debug code.
loadmodule('font-ini.lua')
loadmodule('font-con.lua')
diff --git a/tex/generic/context/luatex/luatex-math.tex b/tex/generic/context/luatex/luatex-math.tex
index 966f2ddec..ab304b974 100644
--- a/tex/generic/context/luatex/luatex-math.tex
+++ b/tex/generic/context/luatex/luatex-math.tex
@@ -1165,7 +1165,7 @@
\the\everymathit
-% a couple of definitions:
+% a couple of definitions (we could also use \mathchardef):
\def\acute {\Umathaccent"0"0"0000B4 }
\def\acwopencirclearrow {\Umathchar "3"0"0021BA }