# Why can LuaLaTeX not overlay a white number over a tikz node?

Why can't LuaLaTeX correctly print the MWE in question "memoir, remove space before chaptertitle", but XeLaTeX can compile it?

LuaLaTeX print a white box over the chapter number, but XeLaTeX print a white number over a gray background.

Note: The MWE on question 411722 does not include the recomended changes by Daleif to be compilable. These are:

At code line 11: Add a % at the end of '\end{tikzpicture}'
At code line 26: Add a % at the end of '\tikzchapnum{##1}'


LuaTeX does everything right (I guess), but you should be aware that setting color=white (you use the shorthand white) may have side effects, especially if you set a color beforehand. Use text=white and everything works as expected.

\documentclass{memoir}
\usepackage{tikz}
\usepackage{lipsum}

\newcommand*\tikzchapnum[1]{%
\begin{tikzpicture}[overlay, inner sep=10pt, outer sep=0]
\node[draw=white!80!black, fill=white!80!black,text=white,
left, anchor=base east, scale=2, inner sep=4pt] (cn) at (\textwidth,0) {\chapnumfont \rmfamily \thechapter};
\draw[white!80!black] (cn.south east) -- ++(-\textwidth, 0);
\draw[red] (0,2) -- ++(0,-\textheight);
\draw[red] (\textwidth,2) -- ++(0,-\textheight);
\end{tikzpicture}%
}

\makechapterstyle{grayhandle}{%
\renewcommand*{\chapnamefont}{\large\scshape}
\renewcommand*{\chaptitlefont}{\normalfont\HUGE\scshape\sffamily}
\setlength{\beforechapskip}{2\baselineskip}
\setlength{\midchapskip}{0pt}
\setlength{\afterchapskip}{3\baselineskip}
\renewcommand*{\printchaptername}{}
\renewcommand*{\afterchapternum}{}
\renewcommand*{\chapnumfont}{\chaptitlefont}
\renewcommand*{\printchaptertitle}[1]{\raggedright\chaptitlefont\MakeLowercase{##1}}
\renewcommand*{\printchapternum}[1]{%
\tikzchapnum{##1}%
}
}
\chapterstyle{grayhandle}

\begin{document}
\chapter{First chapter}
\lipsum
\end{document}

• Many thanks. I was not able to find this solution from the manual. Jan 30 '18 at 8:11
• @djnavas Sometimes it's pretty hard to find something in the TikZ manual ;) Jan 30 '18 at 8:16
• could you expand on "does everything right" do you mean xelatex does "something wrong" ? As long as it is arguably documented (somewhere:-) what the behaviour should be then I can see either behaviour could be correct, but having different back ends do different things isn't that great if it could be avoided. Specifically do you know if the difference is in the tikz engine-specific code or is this a difference inherited from the color engine specific files? (+1 though, I failed to find this last night:-) Jan 30 '18 at 10:59
• @DavidCarlisle It is documented that a color option overrides the text color and the draw color, so the colors would become white in the OP. And limiting the scope of the color change to the text seems to remove this problem (as I would expect following the documentation). Jan 30 '18 at 14:32
• @david-carlisle: I report that pdfLaTeX, XeLaTeX and LuaLaTeX print a white number over a gray background with TikZ parameter 'text=white', but when the parameter is 'white', only XeLaTeX print a white number over grey background. The tikz instruction that have the parameter, is: \node[draw=white!80!black, fill=white!80!black, text=white, left, anchor=base east, scale=2, inner sep=4pt] (cn) at (\textwidth,0) {\chapnumfont \rmfamily \thechapter}; Jan 31 '18 at 19:05