为什么 LuaLaTeX 不能在 tikz 节点上覆盖白色数字?

为什么 LuaLaTeX 不能在 tikz 节点上覆盖白色数字?

为什么 LuaLaTeX 不能正确打印有问题的 MWE”回忆录,删除章节标题前的空格”,但是 XeLaTeX 可以编译它吗?

LuaLaTeX 在章节编号上打印白色框,但 XeLaTeX 在灰色背景上打印白色数字。

注意:问题 411722 的 MWE 不包含 Daleif 建议的可编译更改。这些是:

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

答案1

LuaTeX 可以正确完成所有操作(我猜),但您应该知道设置color=white(使用简写white)可能会产生副作用,尤其是如果您事先设置了颜色。使用后text=white,一切都会按预期进行。

\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*{\chapterheadstart}{}
  \renewcommand*{\printchaptername}{}
  \renewcommand*{\chapternamenum}{}
  \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}

相关内容