summaryrefslogtreecommitdiff
path: root/tex/context/base/mkxl/math-act.lmt
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/mkxl/math-act.lmt')
-rw-r--r--tex/context/base/mkxl/math-act.lmt35
1 files changed, 31 insertions, 4 deletions
diff --git a/tex/context/base/mkxl/math-act.lmt b/tex/context/base/mkxl/math-act.lmt
index c18dcda29..2df708806 100644
--- a/tex/context/base/mkxl/math-act.lmt
+++ b/tex/context/base/mkxl/math-act.lmt
@@ -1453,6 +1453,7 @@ do
local kerns = parameters.list
if kerns then
local characters = target.characters
+ local done = false
local function setone(uc,data)
local function set(unicode)
unicode = mathgaps[unicode] or unicode
@@ -1463,6 +1464,13 @@ do
local k = data.topright ; if k and k ~= 0 then chardata.topright = k * width end
local k = data.bottomleft ; if k and k ~= 0 then chardata.bottomleft = k * width end
local k = data.bottomright ; if k and k ~= 0 then chardata.bottomright = k * width end
+ if not trace_tweaking then
+ done = true
+ elseif done then
+ done[unicode] = true
+ else
+ done = { [unicode] = true }
+ end
end
end
local unicode = detail(characters,uc)
@@ -1478,6 +1486,7 @@ do
setone(unicode,data) -- withscriptcode(tfmdata,unicode,data,kernone)
-- also smaller
end
+ feedback_tweak("kerns",target,original,done)
end
end
@@ -1489,8 +1498,10 @@ do
local margins = parameters.list
if margins then
local characters = target.characters
+ local done = false
local function setone(unicode,data)
- local chardata = characters[mathgaps[unicode] or unicode]
+ unicode = mathgaps[unicode] or unicode
+ local chardata = characters[unicode]
if chardata then
local width = chardata.width or 0
local total = (chardata.height or 0) + (chardata.depth or 0)
@@ -1498,12 +1509,20 @@ do
local k = data.right ; if k and k ~= 0 then chardata.rightmargin = k * width end
local k = data.top ; if k and k ~= 0 then chardata.topmargin = k * total end
local k = data.bottom ; if k and k ~= 0 then chardata.bottommargin = k * total end
+ if not trace_tweaking then
+ done = true
+ elseif done then
+ done[unicode] = true
+ else
+ done = { [unicode] = true }
+ end
end
end
for unicode, data in next, margins do
setone(unicode,data) -- withscriptcode(tfmdata,unicode,data,kernone)
-- also smaller
end
+ feedback_tweak("margins",target,original,done)
end
end
@@ -2874,6 +2893,8 @@ do
{ 0x208B, 0x2212, false },
}
+ datasets.addscripts = list
+
local function add(target,original,characters,unicode,template,super,baseheight,scale)
if not characters[unicode] then
local origdata = characters[template]
@@ -3178,6 +3199,7 @@ do
if list then
local characters = target.characters
local emwidth = target.parameters.quad
+ local done = false
for i=1,#list do
local entry = list[i]
local target = entry.target
@@ -3194,14 +3216,19 @@ do
local data = characters[unicode]
if data then
data.topovershoot = top * (quad or data.width or 0)
+ if not trace_tweaking then
+ done = true
+ elseif done then
+ done[r] = true
+ else
+ done = { [r] = true }
+ end
end
end
- if trace_tweaking then
- report_mathtweak("setting overshoots for %a",target)
- end
end
end
end
+ feedback_tweak("setovershoots",target,original,done)
end
end