Различные выходные xelatex и lualatex (задействованы tikzpagenodes, tcolorbox и фоновые пакеты)
Я размещаю изображение вверху страницы открытия глав. Изображение должно занимать всю ширину страницы. Приведенный ниже код работает нормально LuaLaTeX
, но когда я запускаю его с XeLaTeX
(его нужно запустить 3 раза, чтобы получить правильное позиционирование), изображение перемещается в горизонтальный центр страницы. По другим причинам я должен запускать документ с помощью XeLaTeX
. Что мне следует изменить в коде, чтобы работать с ним XeLaTeX
и получить показанный результат LuaLaTeX
?
ИЗМЕНИТЬ Изменено, чтобы использовать пример изображения. Заголовок изменится в соответствии с показом изображений; но эффект от использования XeLaTeX
такой же.
\documentclass{book}
%%% Include image in chapter opening
\RequirePackage{tikzpagenodes}
%%% fill rectangle with image uisng tcolorbox
%%% https://tex.stackexchange.com/a/219424/2483
\RequirePackage{tcolorbox}
\tcbuselibrary{skins}
\usetikzlibrary{calc}
\usetikzlibrary{fadings}
%%% For the background
%%% https://tex.stackexchange.com/a/86702/2483
\usepackage[pages=some]{background}
\newlength{\bleendlength}
\setlength{\bleendlength}{5mm}
\newcommand{\chapimage}[1]{%
\backgroundsetup{scale=1,placement=top,contents={
\tikz[remember picture,overlay] {%
\path[fill overzoom image=example-image-a, fill image opacity=1, path fading=east, fading angle=-30]
($(current page.north west)+(-\bleendlength, \bleendlength)$)
rectangle
($(current page.north east)+(\bleendlength, -6cm)$);
}
}
}
}
\begin{document}
\chapter{My first chapter}
\label{cha:my-first-chapter}
\chapimage{}\BgThispage
\end{document}
Правильный вывод с LuaLaTeX
:

Неправильный вывод с XeLaTeX
:

Ответы
Значение, переданное в background
параметр contents
(хранящееся в \Background@Contents
), уже набрано внутри tikzpicture
. А вложенность tikzpicture
- это неопределенное поведение. См. Реализацию \bg@material
в background
v2.1, 2014/03/04:
\newcommand\bg@material{%
\begin{tikzpicture}[remember picture,overlay,scale=\Background@Scale]
\node[
rotate=\Background@Angle,
scale=\Background@Scale,
opacity=\Background@Opacity,
anchor=\Background@NodeAnchor,
xshift=\Background@HShift,
yshift=\Background@VShift,
color=\Background@Color,
inner sep=0pt
]
at (\Background@Position) [\Background@Anchor]
{\Background@Contents};
\end{tikzpicture}}%
Грубая попытка переопределить \bg@material
.
% this example produces the same output with pdftex, xetex, and luatex
\documentclass{book}
\usepackage{tcolorbox}
\tcbuselibrary{skins}
\usetikzlibrary{calc, fadings}
\usepackage[pages=some]{background}
\newlength{\bleendlength}
\setlength{\bleendlength}{5mm}
\makeatletter
\renewcommand\bg@material{%
\tikz[remember picture,overlay] {%
\path[fill overzoom image=example-image-a, fill image opacity=1, path fading=east, fading angle=-30]
($(current page.north west)+(-\bleendlength, \bleendlength)$)
rectangle
($(current page.north east)+(\bleendlength, -6cm)$);
}%
}%
\makeatother
\begin{document}
\chapter{My first chapter}\label{cha:my-first-chapter}
\BgThispage
\end{document}
Более приятные решения варьируются от лучшего переопределения с использованием другого пакета фона до предоставления специального стиля страницы, установленного \chapter
(предположим, вы хотите иметь аналогичный фоновый эффект для каждой титульной страницы главы).