Adapt to new luametatex version
This commit is contained in:
parent
870ab69578
commit
d61bb927a3
@ -1,4 +1,4 @@
|
||||
local scan_int = token.scan_integer
|
||||
local scan_int = token.scan_int
|
||||
local scan_token = token.scan_token
|
||||
local scan_keyword = token.scan_keyword
|
||||
local scan_string = token.scan_string
|
||||
|
@ -1,5 +1,5 @@
|
||||
local scan_dimen = token.scan_dimen
|
||||
local scan_int = token.scan_integer
|
||||
local scan_int = token.scan_int
|
||||
local scan_keyword = token.scan_keyword
|
||||
|
||||
local count_code = token.value.integer
|
||||
@ -118,6 +118,8 @@ end
|
||||
tex_variable(count_code, scan_int, 'suppressfontnotfounderror', 0)
|
||||
tex_variable(count_code, scan_int, 'outputmode', 1) -- The "traditional" default would be 0,
|
||||
-- but we do not actually support that.
|
||||
tex_variable(count_code, scan_int, 'tracingscantokens', 0)
|
||||
|
||||
tex_variable(dimen_code, scan_dimen, 'pageheight', 0)
|
||||
tex_variable(dimen_code, scan_dimen, 'pagewidth', 0)
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
local scan_int = token.scan_integer
|
||||
local scan_int = token.scan_int
|
||||
local scan_keyword = token.scan_keyword
|
||||
|
||||
-- local names = {}
|
||||
|
@ -1,7 +1,7 @@
|
||||
local scan_int = token.scan_integer
|
||||
local scan_int = token.scan_int
|
||||
token.scan_int = scan_int -- For compatibility with LuaTeX packages
|
||||
local scan_token = token.scan_token
|
||||
local scan_tokenlist = token.scan_tokenlist
|
||||
local scan_tokenlist = token.scantokenlist
|
||||
local scan_keyword = token.scan_keyword
|
||||
local scan_csname = token.scan_csname
|
||||
local set_macro = token.set_macro
|
||||
@ -77,15 +77,15 @@ end
|
||||
local open_whatsit = new_whatsit('open', do_openout)
|
||||
token.luacmd("openout", function(_, immediate) -- \openout
|
||||
if immediate == "value" then return end
|
||||
if immediate and immediate & 0x7 ~= 0 then
|
||||
immediate = immediate & 0x8
|
||||
if immediate and immediate & ~0x2000 ~= 0 then
|
||||
immediate = immediate & 0x2000
|
||||
tex.error("Unexpected prefix", "You used \\openout with a prefix that doesn't belong there. I will ignore it for now.")
|
||||
end
|
||||
local file = scan_int()
|
||||
scan_keyword'='
|
||||
local name = scan_filename()
|
||||
local props = {file = file, name = name}
|
||||
if immediate and immediate == 8 then
|
||||
if immediate and immediate == 0x2000 then
|
||||
do_openout(props)
|
||||
else
|
||||
local whatsit = node.direct.new(whatsit_id, open_whatsit)
|
||||
@ -114,13 +114,13 @@ end
|
||||
local close_whatsit = new_whatsit('close', do_closeout)
|
||||
token.luacmd("closeout", function(_, immediate) -- \closeout
|
||||
if immediate == "value" then return end
|
||||
if immediate and immediate & 0x7 ~= 0 then
|
||||
immediate = immediate & 0x8
|
||||
if immediate and immediate & ~0x2000 ~= 0 then
|
||||
immediate = immediate & 0x2000
|
||||
tex.error("Unexpected prefix", "You used \\closeout with a prefix that doesn't belong there. I will ignore it for now.")
|
||||
end
|
||||
local file = scan_int()
|
||||
local props = {file = file}
|
||||
if immediate == 8 then
|
||||
if immediate == 0x2000 then
|
||||
do_closeout(props)
|
||||
else
|
||||
local whatsit = node.direct.new(whatsit_id, close_whatsit)
|
||||
@ -148,16 +148,16 @@ local function do_write(p)
|
||||
end
|
||||
end
|
||||
local write_whatsit = new_whatsit('write', do_write)
|
||||
token.luacmd("write", function(_, immediate) -- \write
|
||||
token.luacmd("write", function(_, immediate, ...) -- \write
|
||||
if immediate == "value" then return end
|
||||
if immediate and immediate & 0x7 ~= 0 then
|
||||
immediate = immediate & 0x8
|
||||
if immediate and immediate & ~0x2000 ~= 0 then
|
||||
immediate = immediate & 0x2000
|
||||
tex.error("Unexpected prefix", "You used \\write with a prefix that doesn't belong there. I will ignore it for now.")
|
||||
end
|
||||
local file = scan_int()
|
||||
local content = scan_tokenlist()
|
||||
local props = {file = file, data = content}
|
||||
if immediate == 8 then
|
||||
if immediate == 0x2000 then
|
||||
do_write(props)
|
||||
else
|
||||
local whatsit = node.direct.new(whatsit_id, write_whatsit)
|
||||
@ -205,13 +205,13 @@ token.luacmd("read", function(_, prefix)
|
||||
end
|
||||
local endlocal
|
||||
tex.runlocal(function()
|
||||
endlocal = token.scan_next()
|
||||
endlocal = token.get_next()
|
||||
tex.sprint(endlocal)
|
||||
tex.print(line and line ~= "" and line or " ")
|
||||
tex.print(endlocal)
|
||||
end)
|
||||
while true do
|
||||
local tok = token.scan_next()
|
||||
local tok = token.get_next()
|
||||
if tok == endlocal then break end
|
||||
if tok.command == 1 then
|
||||
balance = balance + 1
|
||||
|
@ -14,6 +14,7 @@ pdf = {
|
||||
}
|
||||
require'luametalatex-font-resolve' -- Replace font.define. Must be loaded before callbacks
|
||||
require'luametalatex-basecallbacks'
|
||||
require'luametalatex-oldnames'
|
||||
local callbacks = require'luametalatex-callbacks'
|
||||
|
||||
local function swap_table(t)
|
||||
@ -80,8 +81,8 @@ function token.luacmd(name, func, ...)
|
||||
idx = tok.index
|
||||
elseif cmd == lua_protected_call_cmd then
|
||||
idx = tok.index
|
||||
elseif cmd == if_test_cmd and tok.index > 49 then
|
||||
idx = tok.index - 49
|
||||
elseif cmd == if_test_cmd and tok.index > 53 then
|
||||
idx = tok.index - 53
|
||||
elseif ... == 'force' then
|
||||
idx = new_luafunction(name)
|
||||
set_lua(name, idx, select(2, ...))
|
||||
|
@ -10,9 +10,9 @@ local primitive_meaning = {
|
||||
token.primitive_tokens.meaning,
|
||||
}
|
||||
token.luacmd("meaning", function()
|
||||
local peeked = token.peek_next()
|
||||
local peeked = token.peeknext()
|
||||
token.put_next(primitive_meaning)
|
||||
token.skip_next_expanded()
|
||||
token.skipnextexpanded()
|
||||
if peeked.parameters == 0 then
|
||||
tex.sprint'->'
|
||||
end
|
||||
|
@ -24,10 +24,10 @@
|
||||
\noexpand\luametalatex@@everyjobandnow{\noexpand\directlua{!
|
||||
lua.get_functions_table()[\the\luametalatex@@expandglyphsinfont] = function()
|
||||
token.put_next(token.create'fontid')
|
||||
local font = token.scan_integer()
|
||||
local stretch = token.scan_integer()
|
||||
local shrink = token.scan_integer()
|
||||
local step = token.scan_integer()
|
||||
local font = token.scan_int()
|
||||
local stretch = token.scan_int()
|
||||
local shrink = token.scan_int()
|
||||
local step = token.scan_int()
|
||||
token.set_macro('pickup@font@@hook@luametalatex@microtype@' .. font, string.format("{}{%i}{%i}{%i}", stretch, shrink, step), "global")
|
||||
end
|
||||
}}
|
||||
|
@ -43,6 +43,7 @@ local get_whatsit_handler = require'luametalatex-whatsits'.handler
|
||||
local write_matrix -- Defined later
|
||||
|
||||
local dir_id = node.id'dir'
|
||||
local glue_id = node.id'glue'
|
||||
|
||||
local function doublekeyed(t, id2name, name2id, index)
|
||||
return setmetatable(t, {
|
||||
@ -356,7 +357,7 @@ function nodehandler.vlist(p, list, x, y0, outerlist, origin, level)
|
||||
local y = y0
|
||||
y = y + height
|
||||
for n in traverse(getlist(list)) do
|
||||
local d, h, _ = 0, direct.effective_glue(n, list) or math.tointeger(getkern(n))
|
||||
local d, h, _ = 0, getid(n) == glue_id and direct.effective_glue(n, list) or math.tointeger(getkern(n))
|
||||
if not h then
|
||||
_, h, d = direct.getwhd(n)
|
||||
end
|
||||
|
72
luametalatex-oldnames.lua
Normal file
72
luametalatex-oldnames.lua
Normal file
@ -0,0 +1,72 @@
|
||||
local function rewrite(t)
|
||||
local function handler(old, new)
|
||||
t[old] = t[old] or t[new]
|
||||
if not t[old] then print('!!!', old) end
|
||||
return handler
|
||||
end
|
||||
return handler
|
||||
end
|
||||
|
||||
rewrite(language)
|
||||
('clear_hyphenation', 'clearhyphenation')
|
||||
('clear_patterns', 'clearpatterns')
|
||||
|
||||
rewrite(node)
|
||||
('copy_list', 'copylist')
|
||||
('flush_list', 'flushlist')
|
||||
('flush_node', 'flushnode')
|
||||
('get_properties_table', 'getpropertiestable')
|
||||
('has_field', 'hasfield')
|
||||
('insert_after', 'insertafter')
|
||||
('insert_before', 'insertbefore')
|
||||
('is_node', 'isnode')
|
||||
|
||||
rewrite(node.direct)
|
||||
('copy_list', 'copylist')
|
||||
('effective_glue', 'effectiveglue')
|
||||
('end_of_math', 'endofmath')
|
||||
('first_glyph', 'firstglyph')
|
||||
('flush_list', 'flushlist')
|
||||
('flush_node', 'flushnode')
|
||||
('get_attribute', 'getattribute')
|
||||
('get_properties_table', 'getpropertiestable')
|
||||
('has_field', 'hasfield')
|
||||
('has_glyph', 'hasglyph')
|
||||
('insert_after', 'insertafter')
|
||||
('insert_before', 'insertbefore')
|
||||
('is_char', 'ischar')
|
||||
('is_direct', 'isdirect')
|
||||
('is_glyph', 'isglyph')
|
||||
('is_node', 'isnode')
|
||||
('is_zero_glue', 'iszeroglue')
|
||||
('last_node', 'lastnode')
|
||||
('make_extensible', 'makeextensible')
|
||||
('mlist_to_hlist', 'mlisttohlist')
|
||||
('protect_glyph', 'protectglyph')
|
||||
('protect_glyphs', 'protectglyphs')
|
||||
('traverse_char', 'traversechar')
|
||||
('traverse_list', 'traverselist')
|
||||
('traverse_id', 'traverseid')
|
||||
('unprotect_glyph', 'unprotectglyph')
|
||||
('unprotect_glyphs', 'unprotectglyphs')
|
||||
('uses_font', 'usesfont')
|
||||
|
||||
rewrite(token)
|
||||
('get_next', 'scannext')
|
||||
('put_next', 'putnext')
|
||||
('scan_argument', 'scanargument')
|
||||
('scan_box', 'scanbox')
|
||||
('scan_code', 'scancode')
|
||||
('scan_csname', 'scancsname')
|
||||
('scan_dimen', 'scandimen')
|
||||
('scan_float', 'scanfloat')
|
||||
('scan_glue', 'scanglue')
|
||||
('scan_int', 'scaninteger')
|
||||
('scan_keyword', 'scankeyword')
|
||||
('scan_keywordcs', 'scankeywordcs')
|
||||
('scan_real', 'scanreal')
|
||||
('scan_string', 'scanstring')
|
||||
('scan_token', 'scannextexpanded')
|
||||
('scan_toks', 'scantoks')
|
||||
('scan_word', 'scanword')
|
||||
('set_lua', 'setlua')
|
@ -31,7 +31,24 @@
|
||||
% so can now be read using the (emulated) primitives
|
||||
% This needs to be global so set \globaldefs for the rest of the group
|
||||
\globaldefs=1 %
|
||||
\input{pdftexconfig}%
|
||||
% \input{pdftexconfig}%
|
||||
% Copied in here because the original uses `true` dimensions which aren't supported
|
||||
\pdfoutput = 1
|
||||
|
||||
% Paper size: dimensions given in absolute terms
|
||||
\pdfpageheight = 297 mm
|
||||
\pdfpagewidth = 210 mm
|
||||
|
||||
% Enable PDF 1.5 output and thus more compression
|
||||
\pdfminorversion = 5
|
||||
\pdfobjcompresslevel = 2
|
||||
|
||||
% Low-level settings unlikely ever to need to change
|
||||
\pdfcompresslevel = 9
|
||||
\pdfdecimaldigits = 3
|
||||
\pdfpkresolution = 600
|
||||
\pdfhorigin = 1 in
|
||||
\pdfvorigin = 1 in
|
||||
% Pick up on a request for DVI mode and apply it whilst \pdfoutput is
|
||||
% still defined
|
||||
\ifx\dvimode\relax
|
||||
|
Loading…
Reference in New Issue
Block a user