# Problem with miktex-2.9.6942-x64 and lualatex/luatex [closed]

I am running MiKTeX 2.9 in windows 10 x64.

After making an fresh basic install with basic-miktex-2.9.6942-x64.exe (to keep the old) I run into a problem with a lualatex program. (correction of sidebearings sidebearings and precision left/right alignment)

1. With the new 2019 basic installation I get an error message

warning (node filter): error: [\directlua]:11: attempt to perform arithmetic on field 'xadvance' (a nil value)

and crash.

1. The program runs fine switching back to the previous 2018 environment.

2. I found that if I only exchange the entire directory C:\Program Files\MiKTeX 2.9\miktex with the old one (2018), while keeping everything else, the program now works.

In the new installation the exe files are dated 02-Jan-19 In the old one the exe files are dated 26-Jun-18 and 24-Jun-18

Any help?

Main lualatex code

% !TeX TS-program = lualatex

\documentclass[12pt]{article}

\RequirePackage{xcolor}

\usepackage{luacode}
\newcount\dropsidebearings
\input{drop_sidebearing.lua}

\newcommand{\hairlineiv}[1][green]{%
\leavevmode%
\kern-0.1pt %
\smash{\color{#1}\vrule height 5\baselineskip depth 5pt width 0.1pt}%
\kern-0.1pt
}

\begin{document}
\pagestyle{empty}

\newcommand{\longtitles}{Long titles must be exactly aligned with the vertical green bar.}% the main title

\begin{minipage}{5in}
\dropsidebearings=1  %turn on the effect
%   \longtitles

\raggedleft\sffamily\fontsize{50}{60}\selectfont\bfseries \longtitles\hairlineiv
\end{minipage}

\end{document}


luatex code (file: drop_sidebearing.lua)

\begin{luacode*}

if tex.count['dropsidebearings'] == 0 then
return true
end
for n in node.traverse_id(node.id'hlist', head) do
if char then
local f = font.getfont(char.font)
if f.shared then
local off = f.shared.rawdata.descriptions[char.char].boundingbox[1]*f.size/1000
char.xoffset = char.xoffset - off
end
end
for ch in node.traverse_id(node.id'glyph', n.head) do
char = ch
end
if char then
local f = font.getfont(char.font)
if f.shared then
local desc = f.shared.rawdata.descriptions[char.char]
end
end
local new_list = node.hpack(n.head, n.width, 'exactly')
n.glue_order = new_list.glue_order
n.glue_set = new_list.glue_set
n.glue_sign = new_list.glue_sign
node.free(new_list)
end
return true
end
luatexbase.add_to_callback('post_linebreak_filter', drop_sidebearing, 'Drop sidebearings after linebreaking')
\end{luacode*}


## closed as off-topic by Mensch, Phelype Oleinik, siracusa, Stefan Pinnow, RaajaJul 5 at 5:55

• This question does not fall within the scope of TeX, LaTeX or related typesetting systems as defined in the help center.
If this question can be reworded to fit the rules in the help center, please edit the question.

• I can reproduce the issue on my MikTeX installation. You could make your question more self-contained and easier to navigate for other people if you included a copy of the relevant MWE in your question here. There are three blocks of code in the linked answer and it takes a while (if only a very short one) to find out which code to copy and run. – moewe Jan 10 at 19:53
• Well it fails with luatex 1.09. I have no idea where @MarcelKrüger found the xadvance field, I don't see it in the documentation. – Ulrike Fischer Jan 10 at 19:57
• @ moewe I did it now. But I think the issue is related with the latest MiKTeX implementation. I reproduced the behavior in OS win 7 32 bit. – Simon Dispa Jan 10 at 20:41
• The field xadvance was removed in LuaTeX 1.08.0 and as far as I can see it was never documented. – Henri Menke Jan 10 at 20:57
• I'm voting to close this question as off-topic because it was solved in comments. – Mensch Jul 4 at 23:20