为什么 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}