Compare commits

..

3 Commits

Author SHA1 Message Date
Marcel Fabian Krüger
246ae13e4e Always store MathML table 2021-05-03 20:07:57 +02:00
Marcel Fabian Krüger
c0f7e707a9 Delay more work until MathML is requested 2021-05-03 20:07:29 +02:00
Marcel Fabian Krüger
11206aecde Simplify internal interface 2021-05-02 02:58:20 +02:00
2 changed files with 12 additions and 10 deletions

View File

@ -33,7 +33,7 @@ lua.get_functions_table()[funcid] = function()
spacing[#spacing+1] = n.width == 0 and '0' or '.8em'
end
mml_table.columnspacing = table.concat(spacing, ' ', 2, #spacing-2)
save_result(mml_table, 0)
save_result(mml_table, true)
end
local last_tag

View File

@ -36,12 +36,13 @@ end
-- Bit 2: Integrate with table mechanism
local mlist_buffer
local mlist_result
local mlist_result, mlist_display
local function save_result(xml, style)
mlist_result = write_xml(make_root(xml, style))
local function save_result(xml, display)
mlist_result, mlist_display = xml, display
if tex.count.tracingmathml > 1 then
texio.write_nl(mlist_result .. '\n')
-- Here xml gets wrapped in an mrow to avoid modifying it.
texio.write_nl(write_xml(make_root({[0] = 'mrow', xml}, display and 0 or 2)) .. '\n')
end
end
@ -64,9 +65,9 @@ luatexbase.add_to_callback('pre_mlist_to_hlist_filter', function(mlist, style)
end
local xml = process_mlist(new_mlist, style == 'display' and 0 or 2)
if flag & 2 == 0 then
save_result(xml, (style == 'display' or flag & 1 == 1) and 0 or 2)
else
assert(style == 'text')
save_result(xml, style == 'display' or flag & 1 == 1)
end
if style == 'text' then
local startmath = tex.nest.top.tail
local props = properties[startmath]
if not props then
@ -90,10 +91,11 @@ lua.get_functions_table()[funcid] = function()
"I was asked to provide MathML code for the last formula, but there weren't any new formulas since you last asked."
})
end
local mml = write_xml(make_root(mlist_result, mlist_display and 0 or 2))
if tex.count.tracingmathml == 1 then
texio.write_nl(mlist_result .. '\n')
texio.write_nl(mml .. '\n')
end
tex.sprint(-2, tostring(pdf.immediateobj('stream', mlist_result, '/Subtype/application#2Fmathml+xml' .. token.scan_argument(true))))
tex.sprint(-2, tostring(pdf.immediateobj('stream', mml, '/Subtype/application#2Fmathml+xml' .. token.scan_argument(true))))
mlist_result = nil
end