Compare commits

...

2 Commits

Author SHA1 Message Date
Marcel Krüger 29c97800a3 Fix typos and add parameters 2019-07-25 13:17:38 +02:00
Marcel Krüger 2e1616f18c Allow setting PDF version number
In contrast to LuaTeX, the version number does not affect the used PDF
features and can be changed at any time.
2019-07-24 18:04:04 +02:00
3 changed files with 20 additions and 6 deletions

View File

@ -58,7 +58,8 @@ callback.register("stop_run", function()
pfile:indirect(id, require'luametalatex-pdf-font'(pfile, f, sorted))
end
pfile.root = pfile:getobj()
pfile:indirect(pfile.root, string.format([[<</Type/Catalog/Version/1.7/Pages %i 0 R>>]], pfile:writepages()))
pfile.version = string.format("%i.%i", pdf.variable.majorversion, pdf.variable.minorversion)
pfile:indirect(pfile.root, string.format([[<</Type/Catalog/Version/%s/Pages %i 0 R>>]], pfile.version, pfile:writepages()))
pfile.info = write_infodir(pfile)
pfile:close()
end, "Finish PDF file")

View File

@ -8,6 +8,7 @@
return token.new(t.mode, t.command)
end
local dimen_cmd = token.command_id'assign_dimen'
local count_cmd = token.command_id'assign_int'
local tex_params = {}
local texmeta = getmetatable(tex)
local texmetaoldindex = texmeta.__index
@ -15,7 +16,9 @@
function texmeta.__index(t, k)
local v = tex_params[k]
if v then
if v.command == dimen_cmd then
if v.command == count_cmd then
return tex.count[v.index]
elseif v.command == dimen_cmd then
return tex.dimen[v.index]
end
else
@ -25,7 +28,9 @@
function texmeta.__newindex(t, k, v)
local p = tex_params[k]
if p then
if p.command == dimen_cmd then
if p.command == count_cmd then
tex.count[p.index] = v
elseif p.command == dimen_cmd then
tex.dimen[p.index] = v
end
else
@ -38,7 +43,9 @@
__index = function(t, k)
local v = pdf_params[k]
if v then
if v.command == dimen_cmd then
if v.command == count_cmd then
return tex.count[v.index]
elseif v.command == dimen_cmd then
return tex.dimen[v.index]
end
else
@ -48,7 +55,9 @@
__newindex = function(t, k, v)
local p = pdf_params[k]
if p then
if p.command == dimen_cmd then
if p.command == count_cmd then
tex.count[p.index] = v
elseif p.command == dimen_cmd then
tex.dimen[p.index] = v
end
else
@ -71,12 +80,15 @@
\def\pdfAlloc{%
\internalAlloc{pdf}%
}
\texAlloc{count}{suppressfontnotfounderror}{0}
\texAlloc{count}{outputmode}{1} % The "traditional" default would be 0,
% but we do not actually support that.
\texAlloc{dimen}{pageheight}{210mm}
\texAlloc{dimen}{pagewidth}{297mm}
\pdfAlloc{dimen}{horigin}{1in}
\pdfAlloc{dimen}{vorigin}{1in}
\pdfAlloc{count}{majorversion}{1}
\pdfAlloc{count}{minorversion}{7}
\directlua{
lua.prepared_code[\csstring#lua.prepared_code+1] = tex.toks[0] .. "end"
\the\toks0

View File

@ -13,6 +13,7 @@ function token.luacmd(name, func, ...)
local idx = new_luafunction(name)
set_lua(name, idx, ...)
functions[idx] = func
return idx
end
local properties = node.get_properties_table()
-- setmetatable(node.direct.get_properties_table(), {
@ -28,7 +29,7 @@ local whatsits = {
[0] = "open",
"write",
"close",
nil,
"special",
nil,
nil,
"save_pos",