[luatex] Change in behavior
Br. Samuel Springuel
rpspringuel at gmail.com
Sun Aug 21 20:12:32 CEST 2016
As part of the GregorioTeX package, we have a Lua function which
rescales a particular distance register by multiplying it by an
arbitrary factor (the factor can be non-integer, so we cannot do this
math in TeX itself). Originally we wrote the function as this:
local function scale_space(factor)
local skip = tex.getskip('gre at skip@temp at four')
skip.width = skip.width * factor
-- should skip.stretch and skip.shink also be scaled?
end
However, we found that after updating our testing process to use TL2016
(and thus LuaTeX 0.95 instead of 0.80) the rescaling was no longer
happening. After some experimentation, we found that the following worked:
local function scale_space(factor)
local skip = tex.getskip('gre at skip@temp at four')
skip.width = skip.width * factor
tex.setskip('gre at skip@temp at four',skip)
-- should skip.stretch and skip.shink also be scaled?
end
This implies to me that the behavior of the function interface for token
registers changed at some point between these two versions. In 0.80 a
variable filled with a token register was linked to that register and
changes to the variable were reflected in the token register itself. In
0.95 the variable is not linked to the register and thus changes to the
variable are not communicated to the register unless and until that is
done so explicitly. Is my interpretation of the situation correct? If
so, when did this change occur and what is the best way for me to stay
abreast of these sort of changes.
--
✝✝✝✝✝✝✝✝✝✝✝✝✝✝✝✝✝✝✝✝✝✝✝✝✝
Br. Samuel, OSB
St. Anselm’s Abbey
Washington, DC
(R. Padraic Springuel)
PAX ☧ ΧΡΙΣΤΟΣ
More information about the luatex
mailing list